Prerequisites
You need the following programs to compile SoPlex:
After receiving SoPlex you have to uncompress it with gzip
(http://www.gnu.org/software/gzip) and unpack it with tar
(http://www.gnu.org/software/tar) into a directory. Then change to that directory.
Linux/x86, Linux/AXP, Darwin, Tru64, Solaris, IRIX, HP-UX
If you are working under one those OSes you should try the following:
gmake
COMP=xxx
OPT=yyy
with xxx
being one of gnu
, intel
, sun
, hp
, sgi
, compaq
or ibm
and yyy
one of dbg
(if you want the debug version) or opt
(if you want the optimized version).
This should generate a binary in the bin
subdirectory.
If the previous section was not for you
First the Makefile tries to find out the OS and the architecture by using the uname
command. If your OS or architecture is missing, please update the Makefile and submit the change to me.
Then a submakefile from make/make.OS.ARCH.COMP.OPT
is included in the main Makefile. You should adapt the compiler flags as needed. Be especially careful with the AR
setting since some C++ compilers do not like using the standard ar
program
together with code that uses templates.
If this all does not work, change to the src
directory and type
CC
*
.cpp
This should do the trick. Adding -DNDEBUG
gives you a non debugging version. Add flags as needed.
Testing the Binary
After you compiled the binary you should download the Netlib LP files at http://www.zib.de/Optimization/Software/Soplex/netlib.tar.gz and unpack them in the check
directory. Then you can try
gmake
COMP=xxx
OPT=dbg
quick
gmake
COMP=xxx
OPT=opt
quick
gmake
COMP=xxx
OPT=opt
check
Use the check
target together with OPT=dbg
only if you have really a lot of time. quick
should run in a few minutes and check
will need between less than one hour and a day, depending on your machine.
quick
should report no fails at all. check
should report no fails in the LC
and EC
columns and in the LR
and ER
columns only with the instances greenbea, greenbeb, pilot-ja or pilot87. One or two fails is normal, above four is probably a problem with the compiler. Look how big the error is. Try again with less optimization. Our results are available at http://www.zib.de/Optimization/Software/Soplex/results to compare with.
Generating the documentation
If you have doxygen
(and dot
) installed, you just can say
gmake
doc
After that the documentation should be in doc/html.
Installation
The binary is in the bin
directory, the library in lib
and all headers are in src
. Feel free to install them at a suitable place.
Naming of the OPT Variable
- dbg (debugging) -DNDEBUG is not set. Optimization is mostly off and debugging info is generated.
- std (standard) -DNDEBUG is set. All optimizations may be switched on that do not alter the floating point behaviour or may otherwise by result in wrong code.
- opt (optimized) -DNDEBUG is set. All optimizations may be switched on, as long as the code seems to run correctly. The code should run on the relevant architectures. Best is something like -fast that uses the right optimizations for the architecture that is used.
- opt-XXX (optimized for XXX) like opt-p4. This includes optimization for a specific processor.
- prf (profile) like opt, but generate profile data.
- XXX-ld (long-double) same as XXX but with long doubles.