MyTetra Share
Делитесь знаниями!
Cfour compiling
Время создания: 22.09.2012 22:14
Раздел: Development
Запись: xintrea/mytetra_db_rarrugas/master/base/1348344896jcj0yrb0je/text.html на raw.githubusercontent.com

General:

---------------------------------------------------------------------------------------------

lp64 -- 4 bytes integer

ilp64 -- 8 bytes integer



For cfour v1 and gfortran v 4.7 it is important to fix moldenorb.f (add BACKSPACE):

--- moldenorb.f 2013-02-18 19:46:43.000000000 +0100

+++ moldenorbnew.f 2013-12-31 19:15:46.295598830 +0100

@@ -16,6 +16,7 @@

IF(ISPIN.EQ.1.AND.STRING.EQ.'[MO]')GOTO 998

GOTO 1

999 continue

+ BACKSPACE(40)

IF(ISPIN.EQ.1)WRITE(40,9000)

9000 FORMAT('[MO]')

998 CONTINUE

---------------------------------------------------------------------------------------------



For YuStation:

---------------------------------------------------------------------------------------------

parallel with MPICH2/3:


MKLPATH=/opt/intel/mkl/lib/intel64 FC=ifort CC=icc MPICH_F90=ifort MPIFC=mpif90.mpich ./configure --with-blas="$MKLPATH/libmkl_solver_ilp64.a -Wl,--start-group $MKLPATH/libmkl_intel_ilp64.a $MKLPATH/libmkl_intel_thread.a $MKLPATH/libmkl_core.a -Wl,--end-group -openmp -lpthread" --prefix=/opt/cfour_mpich --enable-mpi=mpich --with-mpirun="mpirun.mpich -np \$CFOUR_NUM_CORES" --with-exenodes="mpirun.mpich -np \$CFOUR_NUM_CORES"


export MPICH_F90=ifort


fix make.config to be sure that full paths to mkl libs exist.


make

make install


serial:

MKLPATH=/opt/intel/mkl/lib/intel64 FC=ifort CC=icc ./configure --with-blas="$MKLPATH/libmkl_solver_ilp64.a -Wl,--start-group $MKLPATH/libmkl_intel_ilp64.a $MKLPATH/libmkl_intel_thread.a $MKLPATH/libmkl_core.a -Wl,--end-group -openmp" --prefix=/opt/Cfour/cfour_v1_serial

---------------------------------------------------------------------------------------------




For acs:

---------------------------------------------------------------------------------------------

MPICH2 (warning: does not work with version 1.2 due to problems in mpirun):


MPIFC=mpif90.mpich2 ./configure --with-blas="-Wl,--start-group /software/acml4.4.0/gfortran64/lib/libacml.a /software/acml4.4.0/gfortran64/lib/libacml_mv.a -Wl,--end-group" --prefix=/software/Cfour/cfour_v1_mpich2 --enable-mpi=mpich --with-mpirun="mpirun.mpich2 -np \$CFOUR_NUM_CORES" --with-exenodes="mpirun.mpich2 -np \$CFOUR_NUM_CORES"

---------------------------------------------------------------------------------------------




For cheops:

-------------------------------------------------------------------------------------------------------------

Cfour v1 with OpenMPI:

Thread-safe version (mt) of OpenMPI must be used!

WARNING! Incorrect results have been obtained with OpenMPI-parallelized version of Cfour v1!!!


Load MKL ilp64 module

Load an appropriate MPI module, for example

module load openmpi/1.6.5_mt


FC=ifort CC=icc MPIF90=mpif90 MPIFC=mpif90 ./configure --with-blas="-Wl,--start-group libmkl_intel_ilp64.a libmkl_intel_thread.a libmkl_core.a -Wl,--end-group -openmp" --prefix=/home/yvishnev/Apps/Cfour/cfour_v1_openmpi_mt --enable-mpi=openmpi --with-mpirun="srun -n \$CFOUR_NUM_CORES"


Fix make.config to be sure that full paths to mkl libs exist. The path can be taken from MKLLIB var, which can be checked by 'export -p'.

Remove first '-l' from '-l-Wl,--start-group'.


make

make install



Cfour2.00beta with IntelMPI:

Warning with IntelMPI! Normally compiled binaries are not working, since they are linked with ilp64 version of IntelMPI which is bad for Cfour, because it uses integer(4) everywhere for MPI communacation.


module load mkl/11.3_ilp64 (or other version)

module load intelmpi/5.1.2_mt (or other version)

FC=mpiifort CC=mpiicc ./configure --with-blas="-Wl,--start-group libmkl_intel_ilp64.a libmkl_intel_thread.a libmkl_core.a -Wl,--end-group -openmp" --prefix=/home/yvishnev/Apps/Cfour/cfour_v200beta_intelmpi512mt --enable-mpi=mpich --with-mpirun="srun -n \$CFOUR_NUM_CORES"


Now edit make.config

1). Add the -no_ilp64 option to fcflags, fldflags, cflags, cldflags, cxxflags, cxxldflags

2). Remove -lblashc and -llapackhc from BLAS_LIBS and LAPACK_LIBS and instead add to BLAS_LIBS

-Wl,--start-group $(MKLLIB)/libmkl_intel_ilp64.a $(MKLLIB)/libmkl_intel_thread.a $(MKLLIB)/libmkl_core.a -Wl,--end-group -openmp


make

make install


Cfour v1 serial:

FC=ifort CC=icc ./configure --with-blas="-lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -openmp -liomp5 -lpthread" --prefix=/home/yvishnev/Apps/Cfour/cfour_v1_serial

-------------------------------------------------------------------------------------------------------------


Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования