Shared-memory architectures.

To compile a shared memory version of SYMPHONY, simply use an OpenMP compliant compiler. Version 5.7.1 builds with OpenMP support enabled automatically when the compiler provides it. This should be the case for all recent versions of gcc and recent Microsoft compilers. Clang on OS X does not support OpenMP, though it is possible to build a version that does yourself. You can manually enable or disable OpenMP support with configure options by doing, e.g.,

 ./coinbrew fetch build SYMPHONY@\VER --enable-openmp
In the Microsoft Visual Studio, enable OpenMP support in the properties for the SYMPHONY projects (it doesn't need to be enabled for the dependent projects). In a future version, this will also be made the default.

After configuring, follow the earlier instructions for building and testing. To invoke SYMPHONY from the command-line with multiple threads, specify the number of additional worker threads with the -p option, i.e., invoking SYMPHONY with

 bin/symphony -p 2 -F SYMPHONY/Datasets/sample.mps
will utilize two worker threads to process subproblems in parallel. When more than 1 thread is used, the first thread is the “master” thread and only prints out periodic status messages, as well as doing some bookkeeping work. Therefore, it is recommended to always use at least one worker thread ( -p 1). Starting in version 5.6.0, the number of threads used is automatically set equal to the number of available cores if no option is specified. For a fully sequential run with just one thread, invoke SYMPHONY with
 bin/symphony -p 2 -F SYMPHONY/Datasets/sample.mps