GENESIS 2.0.3
ウェブページ
https://www.r-ccs.riken.jp/labs/cbrt/

バージョン
2.0.3

ビルド環境
gcc 11.2.1 (gcc-toolset/11)
MKL 2022.2.1
HPC-X 2.11 (Open MPI 4.1.4)(実際のビルドでは HPC-X 2.13.1 を使っています。しかし、並列数を増やしたときに問題が発生したため、HPC-X 2.11に切り替えて対処しています。)(以下の手順でも便宜上 HPC-X 2.11 を使ったとして手順を記述します。)

ビルドに必要なファイル
genesis-2.0.3.tar.bz2
tests-2.0.3.tar.bz2

ビルド手順#!/bin/sh
VERSION=2.0.3
BASEDIR=/home/users/${USER}/Software/GENESIS/${VERSION}
SRC_TARBALL=${BASEDIR}/genesis-${VERSION}.tar.bz2
TESTS_TARBALL=${BASEDIR}/tests-${VERSION}.tar.bz2
INSTALLDIR=/apl/genesis/2.0.3
WORKDIR=/gwork/users/${USER}
BUILDDIR=${WORKDIR}/genesis-${VERSION}TESTSDIR=${WORKDIR}/tests-${VERSION}
PARALLEL_TESTS=8# ---------------------------------------------------------------------------umask 0022
module -s purge
module -s load gcc-toolset/11
module -s load mkl/2022.2.1
module -s load openmpi/4.1.4-hpcx/gcc11
export LANG=C
export LC_ALL=C
export OMP_NUM_THREADS=1#ulimit -s unlimited
cd ${WORKDIR}
if [ -d genesis-${VERSION} ]; then
mv genesis-${VERSION} genesis-erase
rm -rf genesis-erase &fi
if [ -d tests-${VERSION} ]; then
mv tests-${VERSION} tests-erase
rm -rf tests-erase &fi

tar jxf ${SRC_TARBALL}
tar jxf ${TESTS_TARBALL}
cd ${BUILDDIR}
FC=mpif90 CC=mpicc \LAPACK_LIBS=" -L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lgomp -lpthread -lm -ldl" \./configure --prefix=${INSTALLDIR}# parallel make does not work
make && make install
ATDYN=${INSTALLDIR}/bin/atdyn
SPDYN=${INSTALLDIR}/bin/spdyn
cd ${TESTSDIR}/regression_test
for f in test.py test_remd.py test_rpath.py test_vib.py test_gamd.py \test_analysis/test_analysis.py \test_spana/test_spana.py; do
sed -i -e "s/env python/env python3/" $fdone
sed -i -e "s/env python/env python2/" test_nonstrict.py# atdyn tests./test.py"mpirun -np ${PARALLEL_TESTS} $ATDYN"./test_remd.py"mpirun -np ${PARALLEL_TESTS} $ATDYN"./test_rpath.py"mpirun -np ${PARALLEL_TESTS} $ATDYN"./test_vib.py"mpirun -np ${PARALLEL_TESTS} $ATDYN"./test_gamd.py"mpirun -np ${PARALLEL_TESTS} $ATDYN"./test_nonstrict.py "mpirun -np ${PARALLEL_TESTS} $ATDYN" # ?
# spdyn tests./test.py"mpirun -np ${PARALLEL_TESTS} $SPDYN"./test_remd.py"mpirun -np ${PARALLEL_TESTS} $SPDYN"./test_rpath.py"mpirun -np ${PARALLEL_TESTS} $SPDYN"./test_gamd.py"mpirun -np ${PARALLEL_TESTS} $SPDYN"./test_nonstrict.py "mpirun -np ${PARALLEL_TESTS} $SPDYN" # ?
cd test_analysis./test_analysis.py ${INSTALLDIR}/bin
cd ../
cd test_spana./test_spana.py ${INSTALLDIR}/bin
cd ..

メモ
Intel oneAPI Compiler Classic で -xHost 付きでビルドすると以下のようなエラーで abort
oneAPI Compiler Classic 2022.2.1, 2022.0.2 の両方で確認。-xHost を外せばこのエラーは発生しない。
ulimit -s unlimited をつけて実行したところメモリを食いつぶしてしまったのか、ノードが応答しなくなり、再起動を余儀なくされた。
ifort: error #10105: /lustre/home/users/xxx/intel/oneapi/compiler/2022.2.1/linux/bin/intel64/../../bin/intel64/fortcom: core dumped
ifort: warning #10102: unknown signal(-448501680)
ifort: error #10106: Fatal error in /lustre/home/users/xxx/intel/oneapi/compiler/2022.2.1/linux/bin/intel64/../../bin/intel64/fortcom, terminated byunknowncompilation aborted for at_energy_table_cubic.f90 (code 1)
ifort: error #10105: /lustre/home/users/xxx/intel/oneapi/compiler/2022.0.2/linux/bin/intel64/../../bin/intel64/fortcom: core dumped
ifort: warning #10102: unknown signal(-902248368)
ifort: error #10106: Fatal error in /lustre/home/users/xxx/intel/oneapi/compiler/2022.0.2/linux/bin/intel64/../../bin/intel64/fortcom, terminated byunknowncompilation aborted for sp_energy_pme_noopt_1dalltoall.f90 (code 1)

上記エラーを回避した場合でも、インテルコンパイラを使うといくつかのテストでエラーがあったため今回は回避。速度的にもインテルに明確な優位は確認できず。
要求される LAPACK には MKL を利用。ただし、libgomp を使うように設定。libiomp を使う場合は少し速度が落ちるように見えた。(気のせいかもしれないが)(mkl_link_tool -libs -c gnu_f -p yes -o gomp の出力を利用)