7:34:04 AM PST - Fri, Feb 17th 2012 |
|
I would like to go back to the main subject of the thread.
http://nwchemgit.github.io/images/Nwchem-6.1-2012-Feb-10.tar.gz compiles with scalapack
on Fedora 16 x86_64 with the following commands:
export MPIEXEC=/usr/lib64/openmpi/bin/mpiexec
export LARGE_FILES=TRUE
export USE_NOFSCHECK=TRUE
export TCGRSH=ssh
export NWCHEM_TOP=/rpmbuild/BUILD/nwchem-6.1.test
export NWCHEM_TARGET=LINUX64
export USE_MPI=y
export USE_MPIF=y
export USE_MPIF4=y
export MPI_LOC=/usr/lib64/openmpi/
export MPI_LIB=/usr/lib64/openmpi/lib
export MPI_INCLUDE=/usr/include/openmpi-x86_64
export PYTHONHOME=/usr
export PYTHONVERSION=2.7
export USE_PYTHON64=y
export 'LIBMPI=-L/usr/lib64/openmpi/lib -lmpi -lmpi_f90 -lmpi_f77'
export HAS_BLAS=yes
export 'BLASOPT=-L/usr/lib64/atlas -llapack -lf77blas -lcblas -latlas'
export USE_SCALAPACK=yes
export 'SCALAPACK=$(MPI_LIB)/libscalapack.a $(MPI_LIB)/libmpiblacsCinit.a $(MPI_LIB)/libmpiblacsF77init.a $(MPI_LIB)/libmpiblacs.a'
export CC=gcc
export FC=gfortran
export PYTHONLIBTYPE=so
sed -i 's/libpython$(PYTHONVERSION).a/libpython$(PYTHONVERSION).$(PYTHONLIBTYPE)/g' config/makefile.h
make nwchem_config 'NWCHEM_MODULES=all python' 2>&1 | tee make.nwchem_config.log
make 64_to_32 2>&1 | tee make.64_to_32.log
make USE_64TO32=y 2>&1 | tee make.log
Nevertheless, I have doubts, and would like to suggest two improvements:
4. the symbols are there:
nm -a /rpmbuild/BUILD/nwchem-6.1.test/bin/LINUX64/nwchem | grep pdsye
00000000029542e6 T ga_pdsyev_
...
0000000002a382c0 T pdsyev_
and QA/tests/h2o_opt test runs, but maybe it would be better if nwchem prints in the out file
if is actually uses scalapack or not (especially due to the point 5. below).
5. ga still does not fully finds scalapack, with src/tools/build/config.log:
configure:21122: checking whether SCALAPACK implements pdsyevr
configure:21181: gfortran -o conftest -L/usr/lib64/atlas -L/usr/lib64/openmpi/lib -L/usr/lib64/openmpi/lib -L/usr/lib64/openmpi//lib conftest.f /usr/lib64/openmpi/lib/libscalapack.a /usr/lib64/openmpi/lib/libmpiblacsCinit.a /usr/lib64/openmpi/lib/libmpiblacsF77init.a /usr/lib64/openmpi/lib/libmpiblacs.a -llapack -lf77blas -lcblas -latlas -lmpi -lmpi_f90 -lmpi_f77 -lm >&5
/tmp/ccKwIYKk.o: In function `MAIN__':
conftest.f:(.text+0xa): undefined reference to `pdsyevr_'
collect2: ld returned 1 exit status
pdsyevr (http://icl.cs.utk.edu/lapack-forum/archives/scalapack/msg00159.html) is a relatively new
addition to netlib scalapack, has become a part of scalapack 2.0.0 http://netlib.org/scalapack/scalapack-2.0.0.html,
and i'm not sure if/when intel mkl will have it (10.3.4.191 does not have it).
A warning in nwchem runs, when pdsyevr is supposed to be used and not available, would be nice in stderr.
|