Installation - HipGISAXS/HipGISAXS GitHub Wiki
- Supported Platforms
- Software Prerequisites
- HipGISAXS Directory Layout
- Installing Prerequisites
- Installing HipGISAXS
Supported Platforms
The following are the platforms on which HipGISAXS has been tested.
It may support other platforms as well, but has not been tested. Give it a try.
Operating Systems
- GNU/Linux x86_64: Ubuntu, Red Hat Linux, SUSE Linux, Cray Linux Environment (XT5, XE5, XK7, XE6, XC30).
- Darwin x86_64: Mac OS X (Lion, Mountain Lion, Mavericks).
You could try HipGISAXS on any 64-bit UNIX based OS, but it may or may not support it. Please let us know about your platform (except Windows!) so that we can include it in our support list.
System Hardware (Compute Environment)
- Clusters/Supercomputers without any accelerators.
- Clusters/Supercomputers equipped with Nvidia GPUs as accelerators on each node.
- Clusters/Supercomputers equipped with Intel Phi coprocessor (MIC) on each node.
- AMD/Intel based generic servers/desktops without any accelerators.
- AMD/Intel based generic servers/desktops equipped with CUDA-enabled Nvidia GPUs.
- Intel based generic servers/desktops equipped with Intel Phi coprocessors (MIC).
System Hardware (Processor Architectures)
- AMD/Intel 64-bit processors. We have not extensively tested on various types of processors yet.
- Optional. Fermi or Kepler based Nvidia GPUs with compute capability >= 2.0.
- Optional. Intel MIC based Intel Phi coprocessors. Requires Intel compilers version >= 13.1.0.146.
In Short
- If your system is MAC OSX or Linux, most likely HipGISAXS can be installed on it.
Software Prerequisites
The HipGISAXS software uses several third-party libraries, and they need to be installed and available on your system in order to compile and run HipGISAXS. First check if these are already available on your system before proceeding to installation. If any of these are not installed, you can download and install them yourself.
In general, the following are the requirements of the HipGISAXS software:
- C/C++ compilers.
- GNU version >= 4.3 and <= 4.7, OR,
- Intel version >= 13.1.0.146.
- Other compilers might work, but have not been tested.
Note 1. If compiling with GPU support enabled using GNU, compiler version needs to be >= 4.3 and <= 4.6.
Note 2. If compiling with MIC support enabled, Intel compilers are necessary.
Tip. Recommended GNU compiler 4.6 for GPU enabled version.
- Optional. Nvidia CUDA version > 4.x.
- CUDA can be obtained from http://developer.nvidia.com/cuda/cuda-downloads.
Tip. CUDA version >= 5.0 recommended.
Note. CUDA is NOT required if compiling without GPU support. It is necessary to enable GPU support.
- CUDA can be obtained from http://developer.nvidia.com/cuda/cuda-downloads.
- OpenMPI version > 1.4.4.
- OpenMPI can be obtained from http://www.open-mpi.org/software.
Note 1. Currently, even if you do not plan to use MPI, the compilation process still needs MPI. This requirement will be removed in future.
Note 2. Alternative implementations of MPI can also be used, such as MPICH2 and MVAPICH.
- OpenMPI can be obtained from http://www.open-mpi.org/software.
- C++ Boost libraries version >= 1.49.
- Boost can be obtained from http://www.boost.org.
- Numeric extension to Boost Generic Image Library (GIL).
- Numeric extension to Boost GIL can be obtained from the following sources (file name 'numeric.zip'):
- See installation instructions below on how to install this extension.
- Parallel HDF5 library.
- HDF5 can be obtained from http://www.hdfgroup.org/downloads.
Note. HDF5 requires zlib and szip. - zlib can be obtained from http://www.zlib.net.
- szip can be obtained from http://www.hdfgroup.org/doc_resource/SZIP.
- HDF5 can be obtained from http://www.hdfgroup.org/downloads.
- Tiff Library (libtiff).
- Tiff library can be obtained from http://www.libtiff.org.
- Scons version >= 2.0, for installation.
- Scons can be obtained from http://www.scons.org.
HipGISAXS Directory Contents
hipgisaxs/
+ README.md : Duh!
+ LICENSE : This contains all the licensing information for HipGISAXS.
+ SConstruct : Scons file for installation.
+ SConscript : Scons file for installation.
+ bin/ : This contains HipGISAXS binaries generated by compilation.
+ build/ : (deprecated).
+ data/ : This provides some sample input shape definition files in HDF5 format.
+ doc/ : This contains detailed documentation of HipGISAXS.
+ inputs/ : This gives some sample input files to HipGISAXS program in HiG format.
+ lib/ : The HipGISAXS library, libhipgisaxs.a, is generated here.
+ man/ : This has the HipGISAXS man pages.
+ obj/ : All the object files generated during build are stored here.
+ samples/ : This contains some compilable code samples on how to use the HipGISAXS library.
+ src/ : This is the main source directory containing the full code within subdirectories.
Installing Prerequisites
GNU C/C++ Compilers.
There is a high chance that you have it already. To check the version, enter at the prompt:
$ gcc --version
If it is installed, you will get an output with the version number. Make sure this version is compatible with HipGISAXS.
If not, there are multiple ways you can install GNU compilers depending on your system. For example, on Ubuntu Linux, use:
$ sudo apt-get install gcc-4.6 g++-4.6
On Mac OSX with Homebrew, use:
$ brew install gcc46
Boost Libraries.
Numeric extension to Boost Generic Image Library (GIL).
Download the file numeric.zip
from a link mentioned above. Unzip the file, generating a directory named numeric
. Copy this directory to your Boost installation under boost/gil/extensions/
. For example:
$ wget http://gil-contributions.googlecode.com/svn/trunk/numeric.zip
$ unzip numeric.zip
$ sudo cp -r numeric {INCLUDE_ROOT}/boost/gil/extension
Where INCLUDE_ROOT
is the path to your Boost include directory (such as /usr/local/include
).
OpenMPI.
Tiff Library.
Parallel HDF5.
Scons.
Nvidia CUDA.
Installing HipGISAXS
Once all the prerequisites are successfully installed, use Scons to install HipGISAXS along with list of the directory paths to the installed software:
$ cd hipgisaxs
$ scons --extrapath=PATH1,PATH2,...
Some examples for specialized installations are given below.
Basic CPU version installation
$ scons --extrapath=/usr/local/openmpi,/usr/local/boost,/usr/local/hdf5,/usr/local/tiff,/usr/local/szip
Note 1. The list of paths is an example. They may be different on your system.
Note 2. Currently OpenMPI is required even if you do not plan to use the multi-node version of HipGISAXS. This dependency will be removed in future.
Single node with Nvidia GPU
$ scons --with-cuda --extrapath=...
Single node with Intel MIC
$ scons --with-mic --extrapath=...
Note. Intel compilers are necessary for MIC support.
Multiple CPU system (for MPI support)
$ scons --with-mpi --extrapath=...
Multiple CPU system with Nvidia GPU on each node
$ scons --with-cuda --with-mpi --extrapath=...
Multiple CPU system with Intel MIC on each node
$ scons --with-mic --with-mpi --extrapath=...
Note. Intel compilers are necessary for MIC support.
If all goes well, the software binary/executable will be generated into the 'bin' directory and hipgisaxs library into the 'lib' directory.