Disclaimer
The DREAM toolbox is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY. More specifically:
THE PROGRAM IS PROVIDED ``AS-IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OR CONDITIONS OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL ANY OF THE AUTHORS OF THE DREAM TOOLBOX AND/OR THE DEPARTMENT OF ENGINEERING SCIENCES AT UPPSALA UNIVERSITY, SWEDEN, OR THE INSTITUT D'ELECTRONIQUE ET DE MICRU-ELECTRONIQUE DU NORD (IEMN-DOAE-UMR CNRS 9929), ECOLE CENTRALE DE LILLE, FRANCE, BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER OR NOT THE AUTHORS OF THE DREAM TOOLBOX HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, AND/OR ON ANY THEORY OF LIABILITY ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
System Requirements
- MATLAB >= 7.1 or,
- Octave >= 2.9.12 (>= 3.2.0 recommended).
- FFTW >= 3.0.1 (optional) [1].
- Pthread [2].
[1] The attenuation code in DREAM makes heavily use of FFTs. If the optimized
FFTW is installed then DREAM can be configured to use this lib.
Also, the fftconv_p and sum_fftconv_p functions need the FFTW3 library. A Windows
version of this library can be found at:
http://www.fftw.org/install/windows.html
(see also Libraries for Windows below).
[2] If you want to use the parallel (threaded) DREAM functions in Windows you need to install
the Pthreads-Win32 library. Download the library from:
http://sourceware.org/pthreads-win32/
The pre-build Windows Matlab mex-files are build with the MinGW gcc compiler and linked to
pthreadGC2.dll so the pthreadGC2.dll file must be in a directory where Matlab
can find it. If you use Octave on Windows see the instructions in the download section below
(see also Libraries for Windows below).
Download
Development Code
The development code is available at a subversion repository at SourceForge.net. To download the code you first need to install a subversion (svn) client. There exist both command line clients and various GUI svn clients. To checkout using a command line client do a:
# svn co http://svn.code.sf.net/p/dreamtoolbox/code/trunk dream
See also the DREAM Toolbox SourceForge site.
Recomended GUI clients:
- Windows:TortoiseSVN which integrates into the Windows file browser.
- MacOS X: the SCPlugin
- Linux: kdesvn, for example. Install with your distribition's package manager.
Version 2.1.3
CPU | Matlab Windows | Matlab Linux | Octave |
x86-32 | x86-32 | x86-32 | pkg src [3] | x86-64 | x86-64 [5] | x86-64 | pkg src [3,4] |
Full source code for 2.1.3.
Version 2.1.0
CPU | Matlab MacOS X |
x86-32 | - | x86-64 | Intel mac |
[3] Since the oct-API often changes between releases of Octave the binaries will probably only work for the version of Octave that they were compiled for. For this reason binaries for Octave are no longer available and you need to install the toolbox from source.
There are two source packages available for Octave, the full source package and the source package for the Octave package manager (pkg). The full source package includes: Matlab sources, Octave sources, documentation sources, example code etc. The package source only contains the Octave specific source and is adapted for use with the Octave package manager which is available in Octave 2.9.7 and above. Install with:
octave:1> pkg install dream-2.1.3.tar.gz
For building using the full sources see the instructions in the DREAM user manual.
[4] This is not tested on 64-bit windows. You also need to build Octave from sources since there is currently no Windows 64-bit Octave binaries available.
[5] The 64-bit DREAM binaries for Matlab has been compiled with the MSVC 2008 Express Edition SP1 compiler. To use these binaries you need the Microsoft Visual Studio 2008 SP1 run-time libraries. You also need to install the 64-bit fftw and Pthread-win32 libraries which can be found below.
Libraries for Windows
As discussed in the Download Section above one needs some files from the FFTW and Pthread-Win32 projects to run the DREAM Toolbox on Windows. These files can be found on the respective project's home page. To facilitate installation we have also build 32-bit (and 64-bit) versions of these libraries and the needed files can be found below:- A pre-build FFTW 3.2.2 can be found here (for Matlab). Uncompress the zip file and copy the libfftw3-3.dll file to C:\WINDOWS\system32\ (see the DREAM user manual).
- The Pthread-Win32 lib (for Matlab): pthreadGC2.dll. Copy the file to C:\WINDOWS\system32\ (see the DREAM user manual).
- The header files for Pthread-Win32 and fftw (only needed to build the toolbox with the MSVC Compiler) for Octave: fftw3.h, pthread.h, semaphore.h, and sched.h.
- The Pthread-Win32 dll/lib files (needed to build the toolbox for Octave): pthreadGC2.dll and pthreadGC2.lib.
Libraries for 64-bit Windows
- A pre-build 64-bit FFTW 3.2.2 can be found here (for x86-64 Matlab). Uncompress the zip file and copy the libfftw3-3.dll file to C:\WINDOWS\system32\ (see the DREAM user manual). The fftw lib has been build with the MinGW-w64 64-bit cross-compiler toolchain [eg., x86_64-w64-mingw32-gcc (GCC) 4.4.1-1a].
- An experimental (64-bit patched) Pthread-Win32 lib (for x86-64 Matlab): pthreadGC2.dll. Copy the pthreadGC2.dll file to C:\WINDOWS\system32\ (see the DREAM user manual).
- The patch (for pthreads-w32-2-8-0-release) used to build the Windows 64-bit pthread lib can be found here.
A Note on Parallel Processing and BLAS/LAPACK Setup
The matrices used to store the impulse responses computed by DREAM often becomes relatively large, such as when high resolution wave field snapshots are computed or when high resolution imaging is performed, for example. Modern computers often has more than one core/CPU which significantly can speed up computations in such cases. It is also not uncommon that a 64-bit machine is needed to solve such problems.
Both Matlab and Octave performs matrix operations using the Basic Linear Algebra Subroutines (BLAS) and LAPACK numerical libraries. It is highly recommended to used a tuned linear algebra library, such as K. Goto's BLAS library or ATLAS library, for example. These libraries often have thread support so that all CPUs on the computer can be utilized (resent versions of Matlab have a build-in threaded BLAS).
Furthermore, Octave can be build with 64-bit support using the --enable-64 flag when running the configure script. Note that both BLAS and LAPACK must be then be compiled with 8 byte integers.
18.01.2012