next up previous external Back to SYMPHONY Home Page
Next: Data Structures and Storage Up: The Design of SYMPHONY Previous: Computing Environment

Configuration of the Modules

Although SYMPHONY was originally designed as a parallel code, it can be built in a variety of configurations ranging from completely sequential to fully parallel using the same source code. As described in the previous section, there are five modules in the standard distributed configuration. However, various combinations of these modules can be linked together into ``combined'' modules depending on the user's needs. For instance, if cut generation is fast and not memory-intensive, it may not be worthwhile to have the LP solver and its associated cut generator working independently since this increases communication overhead. In this case, the separation function can be called directly from the LP solver, creating a single, more efficient executable. For debugging purposes, it is often convenient to have the entire framework run as a single executable. This may also be more efficient if only one LP process is to be used. These and other configurations can be specified at compile time. When compiling for shared memory, several subproblems can be processed in parallel by using threading or some similar technique, depending on the architecture and compiler used.



Ted Ralphs
Thu Jun 8 14:31:17 CDT 2000