next up previous contents Back to SYMPHONY Home Page
Next: Compiling the Sample Application Up: SYMPHONY 3.0.1 User's Manual Previous: Fault Tolerance


Quick Start Guide

BB (Single- or Multi-Process Optimization over Networks) Version 3.0.1 is a powerful environment for implementing branch, cut, and price algorithms. The subroutines in the SYMPHONY library comprise a state-of-the-art solver which is designed to be completely modular and easy to port to various problem settings. All library subroutines are generic--their implementation does not depend on the the problem-setting. To develop a full-scale, parallel branch and cut algorithm, the user has only to specify a few problem-specific functions such as preprocessing and separation. The vast majority of the computation takes place within a ``black box,'' of which the user need have no knowledge. SYMPHONY communicates with the user's routines through well-defined interfaces and performs all the normal functions of branch and cut--tree management, LP solution, cut pool management, as well as inter-process or inter-thread communication. Although there are default options, the user can also assert control over the behavior of SYMPHONY through a myriad of parameters and optional subroutines. SYMPHONY can be built in a variety of configurations, ranging from fully parallel to completely sequential, depending on the user's needs. The library runs serially on almost any platform, and can also run in parallel in either a fully distributed environment (network of workstations) or shared-memory environment simply by changing a few options in the makefile. To run in a distributed environment, the user must have installed Parallel Virtual Machine (PVM) software, available for free from Oak Ridge National Laboratories . To run in a shared memory environment, the user must have installed an OpenMP compliant compiler. A cross-platform compiler called Omni, which uses cc or gcc as a back end, is available for free download . This section of the manual is concerned with the detailed specifications needed to develop an application using SYMPHONY. It is assumed that the user has already read the first part of the manual, which provides a high-level introduction to parallel branch, cut, and price and the overall design and use of SYMPHONY.



Subsections
next up previous contents
Next: Compiling the Sample Application Up: SYMPHONY 3.0.1 User's Manual Previous: Fault Tolerance
Ted Ralphs
2003-05-29