Compilation Instructions
From Zori Wiki
| Table of contents |
Zori compilation instructions
This page will probably be never be completely accurate because Zori is constantly in development. We will urge to use the Zori users mailing list to discuss compilation issues. At the end of this page, there are notes for specific platforms (Mac OS 10.3 (http://zori.aspuru.com/compilation.html#MacOSX) Mac OS 10.4 (http://zori.aspuru.com/compilation.html#MacOSX4)). First, do the "Obtaining Zori" and the "Paths" parts. We assume a Linux computer otherwise.
(Mac OS 10.5 (http://zori.aspuru.com/compilation.html#MacOSX5))
Obtaining Zori
Currently, the only way of obtaining Zori is to be a collaborator or developer. Eventually, when it will be released, you will be able to download it from this site, after filling a questionaire.
If you are a collaborator or developer, you will have CVS access, and these are the steps to obtain the code:
export CVSROOT=:pserver:user@sunsite.dk:/pack/cvsroots/zori
cvs login
cvs get zori
Zori will be downloaded from the CVS into a subdirectory called zori
Paths
We assume thay you will install everything in the $ZORI_HOME directory, and therefore have your environment variables set as:
export ZORI_HOME=$HOME/zorihome
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ZORI_HOME/lib
export PATH=$PATH:$ZORI_HOME/bin/
export ACLOCAL_FLAGS=$ACLOCAL_FLAGS:" -I $ZORI_HOME/share/aclocal "
Requirements
The following� packages� (RPM, dpkg and/or source installations) need to be installed:
| Program | RPMs, APT packages | Minimum Version | Source Links | Compilation instructions |
| GNU Scientific Library (http://sources.redhat.com/gsl/) (gsl) | gsl, gsl-devel | 1.4 | ftp://mirrors.rcn.net/pub/sourceware/gsl/ | ./configure --prefix=$ZORI_HOME make ; make install |
| popt (http://freshmeat.net/projects/popt/) | popt (sometimes popt-devel) | 1.0 | ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.1.x/ | ./configure --prefix=$ZORI_HOME make ; make install |
| glib (http://www.gtk.org/) | glib glib-devel or pkgconfig glib2 glib2-devel | 1.2 2.2 | ftp://ftp.gtk.org/pub/gtk/v1.2/ ftp://ftp.gtk.org/pub/gtk/v2.4/ | ./configure --prefix=$ZORI_HOME make; make install /configure --prefix=$ZORI_HOME make; make install (first for pkgconfig, and then for glib2 |
| libxml2 (http://www.xmlsoft.org/) | libxml2 libxml2-devel libxml2-python | 2.6.6 | ftp://.xmlsoft.org/ (ftp://xmlsoft.org) | ./configure --prefix=$ZORI_HOME make; make install |
| NCSA HDF5 (http://hdf.ncsa.uiuc.edu/HDF5/) | N/A to our knowledge | hdf5-1.6.4 or hdf5-1.6.2 hdf5_hl-1.2.0 | ftp://ftp.ncsa.uiuc.edu/HDF/HDF5/current/src/ ( hdf5_hl is included in hdf5-1.6.4 ) ftp://ftp.ncsa.uiuc.edu/HDF/HDF5/prev-releases/ ftp://ftp.ncsa.uiuc.edu/HDF/HDF5/prev-releases/ | CC='mpicc' ./configure --prefix=$ZORI_HOME --enable-parallel make; make install CC='mpicc' ./configure --prefix=$ZORI_HOME --enable-parallel; make; make install CC='h5pcc' ./configure --prefix=$ZORI_HOME make; make install Note: Compilation of examples might fail. Nevermind, do the make install step |
There is a directory where we collected some of the required files listed above . You can access it via http from this link (http://zori.aspuru.com/zori_files/).
|
NOTE: The ATLAS (http://math-atlas.sourceforge.net/) ( Automatically tuned linear algebra software ) package can be optionally downloaded and installed for increasing Zori's linear algebra performance.� |
Message Passing Interface
An implementation of MPI, such as LAM (http://www.lam-mpi.org/) or MPICH (http://www-unix.mcs.anl.gov/mpi/mpich/) is required for compilation. In this document, we assume you are using LAM.
Be warned that the lam distributed with Fedora core 2 was broken.
Compilation
Here are the steps that hopefully will lead to a succesful Zori compilation:
cd zori
aclocal
|
NOTE: If you get complaints about GSL, XML or GLIB macros missing, it is very probable that the ACLOCAL_FLAGS variable was not set correctly. You can try the command: aclocal -I $ZORI_HOME/share/aclocal |
Then, you need to autogenerate the configuration:
chmod 755 ./autogen.sh
# If you have hdf5-1.6.4 or higher:
CC="mpicc -I $ZORI_HOME/include -L$ZORI_HOME/lib" ./autogen.sh \
--prefix=$ZORI_HOME --enable-debug
# If you have hdf-1.6.2:
CC="mpicc -DHDF_162 -I$ZORI_HOME/include -L$ZORI_HOME/lib" ./autogen.sh \
--prefix=$ZORI_HOME --enable-debug --enable-hdf162
To use glib-1.2, append --enable-glib1 to these instructions.
Look for any fatal errors from the configuration procedure. It might complain that some of the features in configure.in are deprecated. That is normal.
If you want to compile Zori with Zopt enabled get and compile Opt++ fisrt. Refer to the Compiling OPTplusplus
section of the manual for instructions.
Export the path for Opt++, in this case we are considering it was installed in $ZORI_HOME:
export OPTPP_BASE=$ZORI_HOME/OPT++.2.1.rao-mac/
Then compile using:
CC="mpicc -I $ZORI_HOME/include -L$ZORI_HOME/lib" \
CXX="mpiCC -I $ZORI_HOME/include -L$ZORI_HOME/lib"./autogen.sh \
--prefix=$ZORI_HOME --enable-debug --enable-optpp
Follow the instructions above to specify particular versions of HDF and GLib.
| NOTE: The --enable-debug option compiles Zori with debugging options. One can also omit it for faster performace. One can run ./configure --help to see all available autogeneration/configure options. |
The code should be compiled with
make
Feel free to contact the developers if you have any questions.
Platform-specific instructions
MacOSX 10.3.2 (Panther)
- Obtain Fink (http://fink.sourceforge.net) and install it. Yes. Don't think, just get it
- Use Fink Commander to install the following packages (The version that we used is in parenthesis. Anything earlier than that is not recommended)
- gettext����������������� (0.10.40)
- gettext-bin
- gettext-devel
- popt��������������������� (1.7.1)
- popt-shlibs
- glib2�������������������� (2.2.3)
- glib2-dev
- glib2-shlibs
- libxml2���������������� (2.2.4)
- libxml2-bin
- libxml2-shlibs
- gettext����������������� (0.10.40)
- Make sure you have the default paths (http://zori.aspuru.com/compilation.html#Paths) set, but also modify AC_LOCAL_FLAGS by running the following command:
export ACLOCAL_FLAGS=$ACLOCAL_FLAGS:" -I /sw/share/aclocal"
- Download and install manually the following packages.
| Program | RPMs, APT packages | Minimum Version | Source Links | Compilation instructions |
| GNU Scientific Library (http://sources.redhat.com/gsl/) (gsl) | gsl, gsl-devel | 1.4 | ftp://mirrors.rcn.net/pub/sourceware/gsl/ | ./configure ---prefix=$ZORI_HOME make ; make install |
| NCSA HDF5 (http://hdf.ncsa.uiuc.edu/HDF5/) | N/A to our knowledge | 16.2 | ftp://ftp.ncsa.uiuc.edu/HDF/HDF5/current/src/ | /configure --prefix=$ZORI_HOME make; make install |
| NCSA HDF5_HL (http://hdf.ncsa.uiuc.edu/HDF5/hdf5_hl/) | N/A to our knowledge | 1.2.0 | ftp://ftp.ncsa.uiuc.edu/HDF/HDF5/hdf5_hl/ | /configure --prefix=$ZORI_HOME make; make install Note: Compilation of examples might fail. Nevermind, do the make install step |
Type this horrible, yet powerful UNIX command
��� ��
CC="mpicc -I${ZORI_HOME}/include -I/sw/include" \
LDFLAGS="-L${ZORI_HOME}/lib -L/sw/lib ${LDFLAGS} " ./autogen.sh \
--prefix=${ZORI_HOME} --enable-debug
make
NOTE: Some of these steps appear in the unsupported script� zmake_osx located in the
Required files (http://zori.aspuru.com/zori_files),
NOTE: If you are compiling on the IBM SP, this post-compilation modification is important for runs at large concurrencies:
After compiling,
Run:change_maxdata
Specify your compiled zori binary
and then use the magic number of 7.
MacOSX 10.4.2 (Tiger) also works for 10.3.9 (Panther)
- Obtain Fink (http://fink.sourceforge.net) and install it. Yes. Don't think, just get it
- Use Fink Commander to install the following packages (The version that we used is in parenthesis. Anything earlier than that is not recommended)
- gettext ..................(0.10.40-19)
- gettext-bin
- gettext-dev
- gettext-tools
- popt ......................(1.7-5)
- popt-shlibs
- glib2 .....................(2.4.6-6)
- glib2-dev
- glib2-shlibs
- libxml2 ..................(2.6.17-1)
- libxml2-bin
- libxml2-shlibs
- lammpi ..................(7.0.6-11)
- lammpi-dev
- lammpi-shlibs
- pkgconfig ..............(0.15.0-2)
- glib ........................(1.2.10-18)
- glib-shlibs
- gettext ..................(0.10.40-19)
- Make sure you have the default paths (http://zori.aspuru.com/compilation.html#Paths) set, but also modify AC_LOCAL_FLAGS by running the following command:
export ACLOCAL_FLAGS=$ACLOCAL_FLAGS:" -I /sw/share/aclocal"
- Download and install manually the following packages.
| Program | RPMs, APT packages | Minimum Version | Source Links | Compilation instructions |
| GNU Scientific Library (http://sources.redhat.com/gsl/) (gsl) | gsl, gsl-devel | 1.5 | ftp://mirrors.rcn.net/pub/sourceware/gsl/ | ./configure ---prefix=$ZORI_HOME make; make install |
| NCSA HDF5 (http://hdf.ncsa.uiuc.edu/HDF5/) | N/A to our knowledge | 1.6.4 | ftp://ftp.ncsa.uiuc.edu/HDF/HDF5/current/src/ | CC="mpicc -I/usr/local/include -L/usr/local/lib" ./configure --prefix=$ZORI_HOME --enable-parallel --enable-static --disable-shared; make; make install
|
On older version of the Zori source code Option -o in zori is not supported for MAC OS.
Either you must use the --enable-macosx option or you must comment it out in zmain.c (lines 115-134 inclusive, put instead a comment like this: m_message("-o option not supported for mac");) but neither should be required for more up to date source code.
Type this horrible, yet powerful UNIX command (have the different libraries localized, this is an example with gsl installed in ~/wkspace)
CC="mpicc -I${ZORI_HOME}/include -I/sw/include -I/sw/include/glib-2.0 -I/sw/include/libxml2 \
-I$HOME/wkspace/gsl-1.5/cblas" LDFLAGS="-L${ZORI_HOME}/lib -L/sw/lib \
-L/sw/lib/glib-2.0 ${LDFLAGS}" ./autogen.sh --prefix=${ZORI_HOME} --enable-macosx --enable-debug
cd src
make
This will get you zori and zavg. There is no support at the moment for zopt.
MacOSX 10.5 (Leopard)
Will attempt to compile shortly on new OS.

