OpenMolcas for LX (2019/6/4)
ウェブページ
https://gitlab.com/Molcas/OpenMolcasビルド環境
- Intel Parallel Studio 2018update4
- cmake 3.8.2
ビルドに必要なファイル
- openmolcas (2019/6/4 時点の最新)
- chemps2 (2019/6/5 時点の最新)
- hdf5-1.10.5.tar.bz2
- ga-5.7.tar.gz (Global Arrays)
ビルド手順
hdf5 (今回インストールする openmolcas 専用)
#!/bin/sh
tar jxf hdf5-1.10.5.tar.bz2
cd hdf5-1.10.5
# --enable-fortran2003 might be simply ignored
./configure --prefix=/local/apl/lx/openmolcas20190604/hdf5-1.10.5 --enable-fortran --enable-cxx --enable-fortran2003
make -j8
make check
make install
global arrays (今回インストールする openmolcas 専用)
#!/bin/sh
GA_VERSION=5.7
GA_DIR=/home/users/qf7/Software/GlobalArrays/${GA_VERSION}
GA_SOURCE=${GA_DIR}/ga-${GA_VERSION}.tar.gz
WORKDIR=/work/users/${USER}
INSTALLDIR=/local/apl/lx/openmolcas20190604/ga-5.7
#---------------------------------------------------------------------
umask 0022
ulimit -s unlimited
export LANG=
export LC_ALL=C
export OMP_NUM_THREADS=1
cd $WORKDIR
if [ -d ga-${GA_VERSION} ]; then
mv ga-${GA_VERSION} ga_tmp
rm -rf ga_tmp &
fi
module purge
module load intel_parallelstudio/2018update4
tar zxf ${GA_SOURCE}
cd ga-${GA_VERSION}
export F77=mpiifort
export F90=mpiifort
export FC=mpiifort
export CC=mpiicc
export CXX=mpiicpc
export MPIF77=mpiifort
export MPICC=mpiicc
export MPICXX=mpiicpc
export GA_FOPT="-O3 -ip -w -xHost"
export GA_COPT="-O3 -ip -w -xHost"
export GA_CXXOPT="-O3 -ip -w -xHost"
./configure --with-blas8=-mkl \
--with-scalapack8=-mkl \
--enable-i8 \
--prefix=${INSTALLDIR}
###--with-ofi \
make -j ${PARALLEL}
make check
make install
cp config.log ${INSTALLDIR}
chemps2
#!/bin/sh
VERSION=20190605 # date instaed of version
SOURCEDIR=/home/users/qf7/Software/CheMPS2
TARBALL=${SOURCEDIR}/chemps2.${VERSION}.tar.gz
WORKDIR=/work/users/${USER}
INSTALL_DIR=/local/apl/lx/openmolcas20190604/chemps2
#-----------------------------------------------------------
umask 0022
module purge
module load intel_parallelstudio/2018update4
module load cmake/3.8.2
cd $WORKDIR
if [ -d chemps2.${VERSION} ]; then
mv chemps2.${VERSION} chemps2_tmp
rm -rf chemps2_tmp &
fi
tar zxf ${TARBALL}
cd chemps2.${VERSION}
mkdir build && cd build
CXX=mpiicpc cmake .. -DMKL=ON \
-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
-DWITH_MPI=OFF
make -j8
make test
make install
openmolcas
#!/bin/sh
VERSION=20190604 # date
SOURCEDIR=/home/users/qf7/Software/OpenMolcas
TARBALL=${SOURCEDIR}/OpenMolcas.${VERSION}.tar.gz
INSTALL_DIR=/local/apl/lx/openmolcas20190604
GAROOT=${INSTALL_DIR}/ga-5.7
CHEMPS2_DIR=${INSTALL_DIR}/chemps2/bin
PARALLEL=8
WORKDIR=/work/users/${USER}
export GAROOT
export MOLCAS_NPROCS=2
export OMP_NUM_THREADS=2
#--------------------------------------------------------
umask 0022
ulimit -s unlimited
export LANG=
export LC_ALL=C
module purge
module load intel_parallelstudio/2018update4
module load cmake/3.8.2
export HDF5_ROOT="/local/apl/lx/openmolcas20190604/hdf5"
cd $WORKDIR
if [ -d OpenMolcas.${VERSION} ]; then
mv OpenMolcas.${VERSION} OpenMolcas_tmp
rm -rf OpenMolcas_tmp
fi
tar zxf ${TARBALL}
cd OpenMolcas.${VERSION}
#git submodule update --init External/NECI
git submodule update --init External/grid_it
git submodule update --init External/libmsym
sed -i -e 's/HDF5 COMPONENTS C/HDF5 COMPONENTS C Fortran/' \
-e 's/find_library(HDF5_Fortran/#find_library(HDF5_Fortran/' \
CMakeLists.txt
mkdir build && cd build
export FC=mpiifort
export CC=mpiicc
export CXX=mpiicpc
cmake .. -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
-DMPI_Fortran_COMPILER=mpiifort \
-DMPI_C_COMPILER=mpiicc \
-DMPI_CXX_COMPILER=mpiicpc \
-DMPI=ON \
-DGA=ON \
-DOPENMP=ON \
-DLINALG=MKL \
-DHDF5=ON \
-DTOOLS=ON \
-DFDE=ON \
-DGRID_IT=ON \
-DNECI=OFF \
-DMSYM=ON \
-DCHEMPS2=ON \
-DCHEMPS2_DIR=${CHEMPS2_DIR}
make -j${PARALLEL}
pymolcas verify
make install
テスト
(OpenMolcas 以外については全て正常にパスしています。)/local/apl/lx/openmolcas20190604/test_results 以下にテスト結果を置いています。
- i18_impi_par: 2 MPI, 2 OMP でのテスト
- i18_impi_ser: 1 MPI, 1 OMP でのテスト
- 850_sample, 851_sample: CheMPS2 のテスト。上記テスト時に PATH の不備があったため個別テスト
並列版は additional でいくつか数値エラーが発生。そもそも並列で動作しないものがいくつか有り。また、852 についてはエラー終了。
メモ
- モジュール名は openmolcas/20190604 です。
- サンプルは /local/apl/lx/openmolcas20190604/samples 以下にあります。
- 演算ノードの python 環境に対応するため、必要なパッケージをインストールディレクトリ内に置き、さらに pymolcas に以下の行を追加しています。
- sys.path.append("/local/apl/lx/openmolcas20190604/python")
- CheMPS2 は /local/apl/lx/openmolcas20190604/chemps2 以下に導入しています。openmolcas から呼び出す際には PATH が通っている必要があります。
- (サンプルや module では対応済みです。)
- Molcas に存在し、OpenMolcas に存在しない機能はマニュアルで確認した限りでは以下のものです。
- DGA: (OpenMolcas における GA に相当)
- MOLCAS_FIM: 環境変数、DGA に含まれる機能を使っている
- CMOCORR, DIMERPERT, EMBQ, FALCON, GEO, MKNEMO, MULA, NEMO
- DGA: (OpenMolcas における GA に相当)