CP2K7.1.0はIntelコンパイラとともにインストールされます

インストール環境の概要:

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.aliblapack.alibtmglib.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 \
  $*

ここで注意すべきこと

  1. コンパイラをmpiコンパイラに変更します
  2. 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をインストールします

これは私が最も多くのピットを踏んだ場所です、インストールするために以下のステップに必ず従ってください。

  1. ダウンロードダウンロード
    を開始する予定がありませんでした。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つしかありません(もう文句を言いたくない)

  2. コンパイル
    おめでとうございます、基本的に後で他の質問はありません、続けましょう!

	$ 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 =クラスタそれには、

おすすめ

転載: blog.csdn.net/qq_32115939/article/details/111225328