Institute for Reliable Computing
Head: Prof. Dr. Siegfried M. Rump
Starting with Version 9, INTLAB is compatible with GNU Octave. The ODE toolbox by F. Bünger requires GNU Octave 5.2.0 or newer.
The officially distributed versions, however, may not switch the rounding mode correctly when computing with multiple threads. When using the Windows-64 (recommended) installer version of GNU Octave, INTLAB automatically takes care of the multiple threads issue.
Many thanks to Kai Torben Ohlhus for help with GNU Octave.
Most GNU Octave installations, including the Windows version, use the OpenBLAS-Library. By default, OpenBLAS does not synchronize the floating-point control and status register (FPCSR) when using multiple threads for a computation.
When using Windows-64 the problem can be solved automatically as above.
For Linux or a customized solution under Windows-64 proceed as follows:
On Linux you can either compile OpenBLAS from source by ensuring the following build flag:
make CONSISTENT_FPCSR=1
Alternatively, you can start Octave by ensuring only one computation thread using the following command:
OMP_NUM_THREADS=1 octave
On Windows the automated procedure described above replaces
C:\Octave\Octave-5.2.0\mingw64\bin\libblas.dllby libopenblasINTLAB-0.3.7.dll. To create this dll from the official OpenBLAS source, follow the procedure described at https://wiki.octave.org/Windows_Installer for
--enable-octave=releaseand modify the file
mxe-octave/src/openblas.mkas follows:
$(PKG)_MAKE_OPTS := PREFIX=$(HOST_PREFIX) DYNAMIC_ARCH=1 NO_LAPACK=1 CONSISTENT_FPCSR=1
Alternatively, you may start Octave on Windows by ensuring only one computation thread. By using an editor, the following line has to be added to the script
c:\Octave\Octave-5.2.0\octave.vbs:
wshSystemEnv("OMP_NUM_THREADS") = "1"
Institute for Reliable Computing
Hamburg University of Technology
An Schwarzenberg-Campus 3
21071 Hamburg
Germany