Qbox build instructions
The Qbox main Makefile includes Makefile headers describing platform-specific information. The current procedure to build Qbox is not automated and requires modifying a Makefile header to adjust to the target platform. Examples of Makefile headers are provided for the following common platforms:
- Intel+IntelMPI+MKL+OpenMP x86_64 intel_omp.mk
- U Chicago RCC midway x86_64 Intel MKL midway_intel.mk
- CentOS 7 x86_64 Intel MKL OpenMPI centos7_intel.mk
- CentOS 7 x86_64 gcc OpenMPI centos7.mk
- CentOS 6 x86_64 gcc OpenMPI centos6.mk
- CentOS 6 x86_64 gcc Atlas OpenMPI workstation gcc_atlas.mk
- CentOS 6 x86_64 Intel OpenMPI Infinipath cluster with MKL libraries icc_mkl.mk
- CentOS 6 x86_64 Intel OpenMP OpenMPI Infinipath cluster with MKL libraries icc_mkl_omp.mk
- IBM BlueGene/Q bgq-anl-omp.mk
- Cray-XC-Intel (NERSC Cori) cori.mk
- NERSC Edison Cray XC30 edison.mk
- TACC Stampede stampede.mk
- TACC Stampede/OpenMP stampede_omp.mk
- IBM p655 Series aix_mpi.mk
- MacOS X 10.9.4 Mavericks openmpi macosx_openmpi.mk
Qbox uses the following libraries
- BLAS (or ATLAS) http://www.netlib.org or http://math-atlas.sourceforge.net
- LAPACK http://www.netlib.org/lapack
- BLACS http://www.netlib.org/blacs
- ScaLAPACK http://www.netlib.org/scalapack
- FFTW-2.1.5 or FFTW-3 http://www.fftw.org
- Apache Xerces-C http://xerces.apache.org/xerces-c
The Makefile header (e.g. myplatform.mk) must be copied to qbox/src and must be modified to indicate the location of these libraries. Once the file myplatform.mk is modified, Qbox can be built as follows (using /bin/bash)
$ cd qbox/src
$ export TARGET=myplatform
$ make