Compilation Problems with Centos 7.3

From NWChem

Viewed 756 times, With a total of 2 Posts
Jump to: navigation, search

Just Got Here
Threads 1
Posts 2
Dear all,

I've been struggling for a couple of days with the compilation of NWChem in our cluster under Centos 7.3. I would be really thankful if someone could provide me with some assistance.

I've downloaded the source code and applied all available patches. Then, I compiled the source with gfortran and openmpi following the settings suggested in the website:

export USE_MPI=y
export NWCHEM_TARGET=LINUX64
export USE_PYTHONCONFIG=y
export PYTHONVERSION=2.7
export PYTHONHOME=/usr
export USE_64TO32=y
export BLAS_SIZE=4
export BLASOPT="-lopenblas -lpthread -lrt"
export SCALAPACK_SIZE=4
export SCALAPACK="-L/usr/lib64/openmpi/lib -lscalapack -lmpiblacs"
export ELPA="-I/usr/lib64/gfortran/modules/openmpi -L/usr/lib64/openmpi/lib -lelpa"
export LD_LIBRARY_PATH=/usr/lib64/openmpi/lib//usr/lib64/compat-openmpi16/lib/:$LD_LIBRARY_PATH
export PATH=/usr/lib64/openmpi/bin/:$PATH


LD_LIBRARY_PATH includes also /usr/lib64/compat-openmpi16/lib/, which is where the libmpi_f77.so and libmpi_f90.so libraries (requested by elpa) are.

Then I followed:

make nwchem_config NWCHEM_MODULES="all python"
make 64_to_32
make


and I obtained a binary, which produced a segmentation fault error upon execution, although I had applied the Ga_argv patch. I reapplied it to make sure but the program confirmed it had been applied already.

I had also compiled it with the MKL libraries, setting BLASOPT to:

-L/opt/intel/mkl/lib/intel64 -Wl,--no-as-needed -lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lpthread -lm -ldl


according to the intel link advisor. But the binary so produced also produced a segmentation fault.

Then I deleted everything, re untared NWChem and recompiled it with MKL and 64bits integers (unsetting USE_64TO32) according to:

-L/opt/intel/mkl/lib/intel64 -Wl,--no-as-needed -lmkl_gf_ilp64 -lmkl_sequential -lmkl_core -lpthread -lm -ldl


However this time make reported too many errors when linking and couldn't produce the nwchem binary.

I've also tried the rpm packages from the EPEL repository, but nwchem is empty and nwchem-common doesn't contain all the sources.

I'm using gfortran 4.8.5, make 3.82 and openmpi 1.10.3.

Any guidance and help would be really appreciated. If you need more input, let me know

Thanks a lot.

Cheers

Just Got Here
Threads 1
Posts 2
Dear all:

In the end I managed to solve the problem. It happens that NWChem is linked against somewhat old MPI libraries. For instance, it requested libmpi.so.1 and in the standard openmpi has the version 12 of the library. I tried the the usual trick of linking limbpi.so.1 -> libmpi.so.12, but apparently they are not fully compatible. There I installed the compat-openmpi version, which provides backwards compatibility, and compiled NWChem against it, instead of against openmpi.

So, instead of the openmpi and openmpi-devel packages, compat-openmpi and compat-openmpi-devel and configured my variables:

# see http://www.nwchem-sw.org/index.php/Compiling_NWChem
export NWCHEM_TOP=/opt/simdata/QM-Programs/nwchem-6.6
export NWCHEM_TARGET=LINUX64
export CC=gcc
export FC=gfortran
export USE_ARUR=TRUE
export USE_NOFSCHECK=TRUE
export NWCHEM_FSCHECK=N
export LARGE_FILES=TRUE
export MRCC_THEORY=Y
export EACCSD=Y
export IPCCSD=Y
export CCSDTQ=Y
export CCSDTLR=Y
export NWCHEM_LONG_PATHS=Y
export PYTHONHOME=/usr
export PYTHONVERSION=2.7
export PYTHONLIBTYPE=so
export USE_PYTHON64=y
export HAS_BLAS=yes
export BLASOPT='-L/opt/intel/mkl/lib/intel64 -Wl,--no-as-needed -lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lpthread -lm -ldl'
export BLAS_SIZE='4'
export USE_SCALAPACK=n
export MAKE=/usr/bin/make
export LD_LIBRARY_PATH=/usr/lib64/compat-openmpi16/lib/
export USE_MPI=y
export USE_MPIF=y
export USE_MPIF4=y
export MPIEXEC=/usr/lib64/compat-openmpi16/bin/mpiexec
export MPI_LIB=/usr/lib64/compat-openmpi16/lib/
export MPI_INCLUDE=/usr/include/compat-openmpi16-x86_64
export LIBMPI='-L/usr/lib64/openmpi/lib -lmpi -L/usr/lib64/compat-openmpi16/lib/ -lmpi_f90 -lmpi_f77'
$MAKE nwchem_config NWCHEM_MODULES="all python" 2>&1 | tee ../make_nwchem_config_openmpi.log
$MAKE 64_to_32 2>&1 | tee ../make_64_to_32_openmpi.log
export MAKEOPTS="USE_64TO32=y"
$MAKE ${MAKEOPTS} 2>&1


and now everything works perfectly. Maybe the compilation instructions for Centos could be updated? I guess that this would solve other compilation problems in Centos which were already reported in the forum.

For the moment I disabled ScaLAPACK as my MKL doesn't include them. I still need to try what's best, but having a working binary of NWChem is a great step forward.

Cheers,

Gets Around
Threads 17
Posts 73
I maintain RPMS of NWchem in EPEL, but I'm prevented from updating by a broken build of ga: https://bugzilla.redhat.com/show_bug.cgi?id=1357022

If anyone has a way to contact the maintainer of ga (David Brown PNNL) please do.


Forum >> NWChem's corner >> Compiling NWChem



Who's here now Members 0 Guests 1 Bots/Crawler 0


AWC's: 2.5.10 MediaWiki - Stand Alone Forum Extension
Forum theme style by: AWC