インストール環境の概要:
IntelMPI 18.0.3
GCC:5.4.0
python 3.6(pythonバージョンは> 3でなければなりません)
gccバージョンはc ++ 11のみをサポートする必要があります。
ほとんどゼロからインストールする必要があります。インストール方法はgcc + openmpi方法とは多少異なります。以前にコンパイルした依存ライブラリを直接使用することはできないため、再コンパイルする必要があります。
CP2K 7.1.0ソースコードをダウンロードし、必要な依存ライブラリを表示します
ソースコードはgithubにあります。ここで注意すべき点は、ソースコードをダウンロードするにはgitコマンドを使用する必要があるということです。
$ git clone --recursive https://github.com/cp2k/cp2k.git cp2k
githubページの右側にあるリリースから直接.gz圧縮パッケージをダウンロードすると、コンパイルを開始したときに一部のファイルが欠落していることを確認するメッセージが表示されます。プロンプトによると、ダウンロードするにはgitコマンドを使用する必要があります。これにより、ダウンロードにgitコマンドを使用しなかった場合、圧縮パッケージが解凍された後のフォルダーはgitリポジトリではないため、ダウンロードできません。ダウンロードしました。
解決策:.githubフォルダーをgitリポジトリから削除し、解凍したフォルダーに配置します(実験なし、理論は実行可能です)
cp2k / archフォルダーにある構成ファイルLinux-x86-64-intel-regtest.psmpを変更します。
開くと、このインストールに必要な他のパッケージの情報が上部に表示されます。次に例を示します。
- Intel MPI、MKL
- Libint 2.6.0
- Libxc 4.3.4
- libxsmm 1.16.1
- ELPA 2020.05.001
- プルーム2.6.1
- GSL 2.6
- SPGLIB 1.16.0
ソフトウェアの更新が頻繁に行われるため、上記のソフトウェアバージョンは変更される可能性があり、すべてが公式基準の対象となります。
以下のすべてのダウンロードおよび解凍プロセスは無視します(特別な場合はテキストで説明します)。すべての圧縮パッケージを解凍した後、それらを同じディレクトリに配置します。インストール手順は少し面倒で、ある程度の量です。忍耐とケアが必要です。
lapack-3.8.0をインストールします
$ cd lapack-3.8.0/
$ vim make.inc
# 修改下面几处
CC = mpiicc
CFLAGS = -O3 -fPIC
FORTRAN = mpiifort
OPTS = -O2 -fPIC
NOOPT = -O0 -fPIC
LOADER = mpiifort
LOADOPTS = -fPIC
TIMER = INT_ETIME
# 最下方还有一处需要更改
BLASLIB = ../../libblas.a
ここで、すべてのコンパイルオプションの後に-fPICを追加する必要があることに注意してください。そうしないと、後で再コンパイルするように通知され、最後に変更する必要がある場所はlibrefblas.aです。lapackライブラリは、後で-lblasを使用して他のソフトウェアをコンパイルするときに主に使用されます。変更しないと、usr / bin / ld:not find-lblasエラーが発生します。
$ make -j 32
コンパイル後、あなたが見ることができます:3つのライブラリファイルが良いlibblas.a、liblapack.aとlibtmglib.aを。
libxc-4.3.4をインストールします
ここでは、直接実行できるシェルスクリプトを提供します
#!/bin/bash
###############################################################################
# Copyright (c) Intel Corporation - All rights reserved. #
# This file is part of the XCONFIGURE project. #
# #
# For information on the license, see the LICENSE file. #
# Further information: https://github.com/hfp/xconfigure/ #
# SPDX-License-Identifier: BSD-3-Clause #
###############################################################################
# Hans Pabst (Intel Corp.)
###############################################################################
if [ "" = "$1" ]; then PRFX=gnu-; else PRFX=$1-; shift; fi
HERE=$(cd $(dirname $0); pwd -P)
DEST=${HERE}/../libxc/${PRFX}skx
if [ ! -e ${HERE}/configure.ac ] || [ "${HERE}" != "$(pwd -P)" ]; then
echo "Error: XCONFIGURE scripts must be located and executed in the application folder!"
exit 1
fi
if [ "${HERE}" = "${DEST}" ]; then
echo "Warning: LIBXC source directory equals installation folder!"
read -p "Are you sure? Y/N" -n 1 -r
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
exit 1
fi
fi
CONFOPTS=""
TARGET="-mavx512f -mavx512cd -mavx512dq -mavx512bw -mavx512vl -mfma -L$MKLROOT/lib/intel64 -mkl=cluster"
export FLAGS="-O3 ${TARGET}"
export LDFLAGS="-llapack -lblas"
export CFLAGS="${FLAGS}"
export CXXFLAGS="${FLAGS}"
export FCFLAGS="${FLAGS}"
export LIBS=""
export AR="ar"
export FC="mpiifort"
export CC="mpiicc"
export CXX="mpiicpc"
libtoolize
aclocal
autoheader
automake -a
autoconf
./configure \
--prefix=./install \
CC=mpiicc CXX=mpiicpc FC=mpiifort \
$*
ここで注意すべきこと
- コンパイラをmpiコンパイラに変更します
- mklライブラリを追加する必要があります
このスクリプトのソースコードはhttps://github.com/hfp/xconfigure/raw/master/configにありますが、元のスクリプトはバージョン4.3.4のコンパイル時にエラーを報告します。
それをlibxc-4.3.4フォルダーにコピーし、make.shとして保存します。
$ chmod +x make.sh
$ ./make.sh
$ make -j 32
$ make install
spglib-1.16.0をインストールします
ここで注意することは何もありません。
$ cd spglib-1.16.0
$ mkdir _build
$ cd _build
$ cmake -DCMAKE_INSTALL_PREFIX="../install" ..
$ make -j 32
$ make install
elpa-2020.05.001をインストールします
使用できるスクリプト、リファレンスインストール4.3.4-libxcの使用も提供されています。
#!/bin/bash
###############################################################################
# Copyright (c) Intel Corporation - All rights reserved. #
# This file is part of the XCONFIGURE project. #
# #
# For information on the license, see the LICENSE file. #
# Further information: https://github.com/hfp/xconfigure/ #
# SPDX-License-Identifier: BSD-3-Clause #
###############################################################################
# Hans Pabst (Intel Corp.)
###############################################################################
if [ "" = "$1" ]; then PRFX=gnu-; else PRFX=$1-; shift; fi
HERE=$(cd $(dirname $0); pwd -P)
DEST=${HERE}/../elpa/${PRFX}skx-omp
if [ ! -e ${HERE}/configure ] || [ "${HERE}" != "$(pwd -P)" ]; then
echo "Error: XCONFIGURE scripts must be located and executed in the application folder!"
exit 1
fi
if [ "${HERE}" = "${DEST}" ]; then
echo "Warning: ELPA source directory equals installation folder!"
read -p "Are you sure? Y/N" -n 1 -r
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
exit 1
fi
fi
CONFOPTS="--enable-avx512 --enable-openmp"
TARGET="-mavx512f -mavx512cd -mavx512dq -mavx512bw -mavx512vl -mfma"
FLAGS="-O3 ${TARGET} "
export LDFLAGS="-fPIC "
export CFLAGS="-march=core-avx2 -fPIC "
export CXXFLAGS="-march=core-avx2 -fPIC ${CFLAGS} "
export FCFLAGS="-march=core-avx2 -fPIC ${FLAGS} "
export LIBS="-L../lapack-3.8.0 -L$MKLROOT/lib/intel64 -llapack -lblas -mkl=cluster"
export SCALAPACK_LDFLAGS=""
export AR="ar"
export FC="mpiifort"
export CC="mpiicc"
export CXX="mpiicpc"
# Development versions may require autotools mechanics
if [ -e ${HERE}/autogen.sh ]; then
./autogen.sh
fi
if [ ! -e ${HERE}/remove_xcompiler ]; then
echo "#!/bin/bash" > ${HERE}/remove_xcompiler
echo "remove=(-Xcompiler)" >> ${HERE}/remove_xcompiler
echo "\${@/\${remove}}" >> ${HERE}/remove_xcompiler
chmod +x ${HERE}/remove_xcompiler
fi
./configure --disable-option-checking \
--disable-dependency-tracking \
--disable-mpi-module \
--disable-shared \
--enable-openmp \
--prefix=./elpa-2019.05.001/install
sed -i \
-e "s/-openmp/-qopenmp -qoverride_limits/" \
-e "s/all-am:\(.*\) \$(PROGRAMS)/all-am:\1/" \
Makefile
ここで変更する必要があるのは、コンパイラ、インストールパス、およびLDFLAGSなどのコンパイルオプションです。
実行するためのスクリプトを実行した後32 -jメイクを、メイクをインストールします
gsl-2.6をインストールします
ここで注意することは何もありません。
$ cd gsl-2.6
$ ./configure --prefix=./install CC=mpiicc CXX=mpiicpc FC=mpiifort
$ make -j 32
$ make install
プルームをインストール-2.6.1
ここでは、いくつかのライブラリパスの追加に注意を払う必要があるだけです。
$ cd plumed-2.6.1
$ ./configure --prefix=./install CXX=mpiicpc CC=mpiicc LDFLAGS="-L../lapack-3.8.0 -L$MKLROOT/lib/intel64 -mkl=cluster -L../gsl-2.6/install/lib" LIBS="-llapack -lblas " --enable-gsl
$ make -j 32
$ make install
libxsmm-1.16.1をインストールします
$ cd libxsmm-1.16.1
$ make INTRINSICS=1 SSE=2 AVX=2 ROW_MAJOR=0 INDICES_M="$(echo $(seq 1 24))" INDICES_N="$(echo $(seq 1 24))" INDICES_K="$(echo $(seq 1 24))"
ここではgccのハイバージョンが使用されており、具体的な手順はlibxsmmの公式Webサイトで説明されているため、INTRINSICS = 1オプションには特別な注意を払う必要があります。
下位バージョンのgccを使用している場合、このオプションを追加するとエラーが報告されることがあります。このオプションを削除するだけです。
boost-1_74_0をインストールします
システムにBoostがあり、バージョンが1.30以上の場合、Boostをインストールする必要はありません。
ブーストのインストールプロセスは他のソフトウェアとは異なりますが、特に注意する必要はありません。
$ cd boost_1_74_0/
$ ./bootstrap.sh --with-libraries=all --with-toolset=gcc
# 这时候会出现一个新的文件 b2
$ ./b2 install --prefix=./install
gmp-6.1.0をインストールします
なぜgmpをインストールするのですか?
理由:システムのgccは管理者によってコンパイルされ、gmpはインストールされていますが、インストールプロセス中にC ++構文がサポートされていないため、mpicxxを使用してプログラムをコンパイルするとエラーが発生します。システムのgmp / libにすでにlibgmpxx.soが含まれている場合は、ここでgmpを再インストールする必要はありません。
gmpをインストールするプロセスは複雑ではありません。
$ cd gmp-6.1.0
$ ./configure --prefix=./install --enable-cxx
$ make -j 32
$ make install
必ず-enable-cxxオプションを追加してください。そうしないと、上記のエラーが引き続き発生します。
libint-v2.6.0をインストールします
これは私が最も多くのピットを踏んだ場所です、インストールするために以下のステップに必ず従ってください。
-
ダウンロードダウンロード
を開始する予定がありませんでした。githubの公式バージョンlibintはインストールされているcp2k-7.1.0には適用されません。https://github.com/cp2k/libintをコンパイルするために提供されている特定のインストールパッケージcp2kを使用する必要があります-cp2k / releases / tag /v2.6.0。ネチズンによると、公式版もコンパイルに失敗するという。一度コンパイルできたのは幸運だったのかもしれない。
ダウンロードしたバージョンはlibint-v2.6.0-cp2k-lmax-4.tgzで、構成ファイルに書き込まれています。
ここに間違ったソースコードを書かないでください。無関係なファイルは3つしかありません(もう文句を言いたくない)
-
コンパイル
おめでとうございます、基本的に後で他の質問はありません、続けましょう!
$ cd libint-v2.6.0-cp2k-lmax-6
$ ./configure --prefix=./install --enable-fortran CC=mpiicc CXX=mpiicpc FC=mpiifort CXXFLAGS="-O3 -I../gmp-6.1.0/install/include -L../gmp-6.1.0/install/lib -L../zlib/lib" CFLAGS="-O3 -I../gmp-6.1.0/install/include -L../gmp-6.1.0/install/lib -L../zlib/lib" --with-boost=../boost_1_74_0/install FCFLAGS="-O3 -I../gmp-6.1.0/install/include -L../gmp-6.1.0/install/lib -L../zlib/lib"
$ make -j 32
$ make install
ここで使用するzlibは自分でインストールします。ダウンロードして自分でインストールできます。手順は、非常に簡単です。
CP2Kをインストールする
まず、必要な構成ファイルを変更します。ここではarch /Linux-x86-64-gfortran.psmpを使用しています。
include /path/to/plumed2/lib/plumed/src/lib/Plumed.inc.static
ELPA_VER = 2020.05.001
ELPA_INC = /path/to/elpa/include/elpa_openmp-$(ELPA_VER)
ELPA_LIB = /path/to/elpa/lib
LIBINT_INC = /path/to/libint/include
LIBINT_LIB = /path/to/libint/lib
LIBXC_INC = /path/to/libxc/include
LIBXC_LIB = /path/to/libxc/lib
LIBXSMM_INC = /path/to/libxsmm/include
LIBXSMM_LIB = /path/to/libxsmm/lib
SPGLIB_INC = /path/to/spglib/include
SPGLIB_LIB = /path/to/lib/lib64
LAPACK_LIB = /path/to/lapack/3.8.0_intel2017_gcc540
GSL_LIB = /path/to/gsl-2.6/lib
GSL_INC = /path/to/gsl-2.6/include
ZLIB = /path/to/zlib
PLUMED = /path/to/plumed2
FCFLAGS += -I$(LIBINT_INC) -I$(LIBXC_INC) -I$(LIBXSMM_INC) -I$(GSL_INC) -I$(PLUMED)/include -I$(SPGLIB_INC)
LIBS = $(PLUMED_DEPENDENCIES) $(GSL_LIB)/libgsl.a $(GSL_LIB)/libgslcblas.a $(ZLIB)/lib/libz.a
LIBS += /path/to/gcc/5.4.0/lib64/libstdc++.a
LIBS += $(LAPACK_LIB)/liblapack.a
LIBS += $(LAPACK_LIB)/libblas.a
上記で変更または追加する必要がある部分のみを作成しました
$ make ARCH=Linux-x86-64-intel-regtest VERSION=psmp -j 24
ダウンロードを直接実行するだけで、gitコマンドを実行するように求められる場合があります。マシンがインターネットに接続できない場合は、ネットワーク環境で実行が完了した後、再度アップロードできます。
次に、インストールが完了するのを待つ必要があります。
インストールが完了すると、exe / Linux-x86-64-intel-regtestフォルダーに実行可能ファイルcp2k.psmpが表示されます。
この時点で、インストールはすべて終了します
以下は技術的な要約です
インストールのインテル版は、例えばscalapckのためのいくつかの数学ライブラリので、FFTW使用して直接インストールする必要はありません、多くのことをOpenMPIのインストールよりも、実際に簡単です-L $ MKLROOT / libに/ intel64 -mkl =クラスタそれには、