welcome: please sign in
location: Diff for "Installation"
Differences between revisions 33 and 43 (spanning 10 versions)
Revision 33 as of 2013-12-05 06:33:09
Size: 3498
Editor: 10
Comment:
Revision 43 as of 2017-02-23 01:53:03
Size: 5019
Editor: huangc
Comment:
Deletions are marked like this. Additions are marked like this.
Line 20: Line 20:
If you use bash shell, you can set fortran and c compiler:  If you use bash shell, you can set fortran and c compiler:
Line 24: Line 24:
$export CXX=g++
Line 25: Line 26:
Tips: If you ignored this step, the configure script will pick up the gfortran and gcc compiler as default.  Tips: If you ignored this step, the configure script will pick up the gfortran and gcc compiler as default.
Line 28: Line 29:

For flaxibality reason, we ask users to set blas and lapack libraries.
The external Blas and Lapack library is needed for compling BDF. In addition, C language Blas and Lapack are required.
It is easer to use Intel MKL. You only need set "MATHLIB" and "MATHINCLUDE" as
Line 31: Line 32:
$export MATHLIB="-LMathLibDir -llapackname -lblasname" $export MATHLIB="-lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lpthread"
$export MATHINCLUDE="-I/opt/intel/mkl/include"
Line 34: Line 36:
3. Configure BDF package. However, you may choose to use Blas and Lapack from netlib. You may download lapack library from http://www.netlib.org/lapack/lapack-3.6.0.tgz.
Do not forget also compile "lapacke" and "cblas", which is a C interface for lapack and blas library.

Then, you need set "MATHLIB" and "MATHINCLUDE"
{{{
$export MATHLIB="-L/Users/aaa/mathlib/lapack -llapack64 -lblas64"
$export MATHINCLUDE="-I/Users/aaa/lapack-3.6.0/lapacke/include -I/Users/aaa/lapack-3.6.0/cblas/include"
}}}
3.(optional)Set processor specific compiling flag.
If you need to speed up the program, you can turn on specific compiling flag in config/simd.mh
for example, you can turn on core-avx2 with intel compiler on intel CPU with Haswell microarchitecture or later on.
{{{
SIMDFLAGS := -march=core-avx2

CFLAGS :=$(SIMDFLAGS) $(CFLAGS)
CXXFLAGS :=$(SIMDFLAGS) $(CXXFLAGS)
F77FLAGS :=$(SIMDFLAGS) $(F77FLAGS)
F90FLAGS :=$(SIMDFLAGS) $(F90FLAGS)
}}}


4. Configure BDF package.
Line 49: Line 72:
 --enable-mkl=yes[no] Compiler BDF withIntel MKL support.
Line 51: Line 75:
4. Compile BDF package. 5. Compile BDF package.
Line 79: Line 103:
  $export FC=ifort
  $export CC=gcc
  $export MATHLIB="-lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lpthread"
  $./configure --enabale-i8=yes --enable-openmp=yes
  $make
  export FC=ifort
  export CC=gcc
  export CXX=g++
  
export MATHLIB="-lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lpthread"
  export MATHINLCUDE="-I/opt/intel/mkl/include"
  
./configure --enable-i8=yes --enable-openmp=yes --enable-mkl=yes
  make
Line 86: Line 112:
2. A Mac laptop with gfortran, gcc and user compiled lapack and blas library  2. A Mac laptop with gfortran, gcc and user compiled lapack and blas library
Line 90: Line 116:
  $export CXX=g++
Line 91: Line 118:
  $./configure --enabale-i8=yes --enable-openmp=yes   $export MATHINCLUDE="-I/Users/mike/lapack-3.6.0/lapacke/include -I/Users/mike/lapack-3.6.0/cblas/include"
  $./configure --enable-i8=yes --enable-openmp=yes
Line 97: Line 125:
Check MPI flags by using command  Check MPI flags by using command
Line 102: Line 130:
You may get such output.  You may get such output.
Line 107: Line 135:
You can compile bdf package as  You can compile bdf package as
Line 111: Line 139:
  $export CXX=icpc
Line 112: Line 141:
  $export MATHINCLUDE="I/opt/intel/mkl/include"
Line 113: Line 143:
  $./configure --enabale-i8=yes --enable-parallel=yes   $./configure --enable-i8=yes --enable-parallel=yes --enable-mkl=yes
Line 117: Line 147:
If you only want to evoke MPI, just use  If you only want to evoke MPI, just use
Line 119: Line 149:
  $./configure --enabale-i8=yes --enable-mpi=yes   $./configure --enabale-i8=yes --enable-mpi=yes --enable-mkl=yes

Installation

System requirements

In principle, BDF supports all Unix-like platforms. However, we strongly propose you to use BDF at Linux platform together Intel Fortran and C compiler because BDF package is developed and thoroughly tested on such platforms. System requirements of BDF is summarized as following lines:

 OS: Linux, Mac, FreeBSD, Unix
 Compiler: Fortran 90 compiler such as Intel, gfortran, g95
 Support softwares: Python, make
 Parallel environments: MPI

Configure and compile BDF package

Several steps are needed to install BDF package.

1. Set fortran and C compiler.

  • If you use bash shell, you can set fortran and c compiler:

$export FC=ifort
$export CC=gcc
$export CXX=g++
  • Tips: If you ignored this step, the configure script will pick up the gfortran and gcc compiler as default.

2. Set blas and lapack library. The external Blas and Lapack library is needed for compling BDF. In addition, C language Blas and Lapack are required. It is easer to use Intel MKL. You only need set "MATHLIB" and "MATHINCLUDE" as

$export MATHLIB="-lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lpthread"
$export MATHINCLUDE="-I/opt/intel/mkl/include"

However, you may choose to use Blas and Lapack from netlib. You may download lapack library from http://www.netlib.org/lapack/lapack-3.6.0.tgz. Do not forget also compile "lapacke" and "cblas", which is a C interface for lapack and blas library.

Then, you need set "MATHLIB" and "MATHINCLUDE"

$export MATHLIB="-L/Users/aaa/mathlib/lapack -llapack64 -lblas64"
$export MATHINCLUDE="-I/Users/aaa/lapack-3.6.0/lapacke/include -I/Users/aaa/lapack-3.6.0/cblas/include"

3.(optional)Set processor specific compiling flag. If you need to speed up the program, you can turn on specific compiling flag in config/simd.mh for example, you can turn on core-avx2 with intel compiler on intel CPU with Haswell microarchitecture or later on.

SIMDFLAGS := -march=core-avx2

CFLAGS :=$(SIMDFLAGS) $(CFLAGS)
CXXFLAGS :=$(SIMDFLAGS) $(CXXFLAGS)
F77FLAGS :=$(SIMDFLAGS) $(F77FLAGS)
F90FLAGS :=$(SIMDFLAGS) $(F90FLAGS)

4. Configure BDF package.

After setting compiler and mathematic library. You can configure BDF by command configure in BDF root directory.

$./configure

Configure support several parameters.

 --enable-debug=yes[no]     Compile BDF in debug mode.
 --enable-i8=yes[no]            Compile BDF with 64 bit integrals.
 --enable-openmp=yes[no]  Compile BDF with OpenMP supporting.
 --enable-mpi=yes[no]         Compile BDF with MPI supporting.
 --enable-parallel=yes[no]   Compiler BDF with MPI and OpenMP support.
 --enable-mkl=yes[no]   Compiler BDF withIntel MKL support.

5. Compile BDF package.

 $make 

Compile parallel bdf

Some of BDF modules support parallel calculation. You can compiler BDF as parallel mode. At present, we support MPI and OpenMP.

1. MPI and OpenMP hybrid.

 $./configure  --enable-parallel=yes

2. Only MPI.

 $./configure  --enable-mpi=yes

3. Only OpenMP.

 $./configure  --enable-openmp=yes

Examples of some typical installations

1. A 64bit machine with intel compiler and MKL library.

  export FC=ifort
  export CC=gcc
  export CXX=g++
  export MATHLIB="-lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lpthread"
  export MATHINLCUDE="-I/opt/intel/mkl/include"
  ./configure --enable-i8=yes --enable-openmp=yes --enable-mkl=yes
  make

2. A Mac laptop with gfortran, gcc and user compiled lapack and blas library

  $export FC=gfortran 
  $export CC=gcc 
  $export CXX=g++
  $export MATHILIB="-L/Users/mike/mathlib -lblas -llapack" 
  $export MATHINCLUDE="-I/Users/mike/lapack-3.6.0/lapacke/include -I/Users/mike/lapack-3.6.0/cblas/include"
  $./configure --enable-i8=yes --enable-openmp=yes 
  $make

3. A Linux cluster with fort, icc, openmpi and intel MKL library.

  • Check MPI flags by using command

  $mpif90 --shownme

  • You may get such output.

  ifort -I/opt/openmpi/include -I/opt/openmpi/lib -L/opt/openmpi/lib -lmpi_f90 -lmpi_f77 -lmpi -ldl -lm -Wl,--export-dynamic -lrt -lnsl -lutil
  • You can compile bdf package as

  $export FC=ifort
  $export CC=icc
  $export CXX=icpc
  $export MATHLIB="-lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lpthread"
  $export MATHINCLUDE="I/opt/intel/mkl/include"
  $export MPILIB="-I/opt/openmpi/include -I/opt/openmpi/lib -L/opt/openmpi/lib -lmpi_f90 -lmpi_f77 -lmpi -ldl -lm -Wl,--export-dynamic -lrt -lnsl -lutil"
  $./configure --enable-i8=yes --enable-parallel=yes --enable-mkl=yes
  $make
  • If you only want to evoke MPI, just use

  $./configure --enabale-i8=yes --enable-mpi=yes --enable-mkl=yes

Set system variables of BDF package

Installation (last edited 2021-07-22 05:07:26 by bsuo)