From 7924c754d86fde855cc9bba6cb00cca64fe687fd Mon Sep 17 00:00:00 2001 From: Ye Luo Date: Tue, 6 Nov 2018 11:22:23 -0600 Subject: [PATCH 1/3] Configuration script for armclang. --- config/build_armclang_nompi.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 config/build_armclang_nompi.sh diff --git a/config/build_armclang_nompi.sh b/config/build_armclang_nompi.sh new file mode 100644 index 0000000000..f838a203a5 --- /dev/null +++ b/config/build_armclang_nompi.sh @@ -0,0 +1,12 @@ +# This configuration was tested with Arm Compiler for HPC 18.4 + +# ARMPL_DIR is the path to the ARM Performance Libraries +#export ARMPL_DIR= + +cmake -DCMAKE_C_COMPILER=armclang -DCMAKE_CXX_COMPILER=armclang++ -DQMC_MPI=0 \ + -DCMAKE_C_COMPILER_ID=Clang -DCMAKE_CXX_COMPILER_ID=Clang -DCMAKE_CXX_COMPILER_VERSION=5.0 -DCMAKE_CXX_STANDARD_COMPUTED_DEFAULT=98 \ + -DCMAKE_C_FLAGS="-march=armv8-a" -DCMAKE_CXX_FLAGS="-march=armv8-a" \ + -DLAPACK_LIBRARIES="-L$ARMPL_DIR/lib -larmpl_mp" \ + -DFFTW_INCLUDE_DIR="$ARMPL_DIR/include" \ + -DFFTW_LIBRARIES="$ARMPL_DIR/lib/libarmpl_mp.a" \ + .. From 6d8a6a1986adac68b944291f092bf18a5a320cab Mon Sep 17 00:00:00 2001 From: Ye Luo Date: Tue, 6 Nov 2018 17:25:16 -0600 Subject: [PATCH 2/3] Move the arm build recipe script to manual. --- config/build_armclang_nompi.sh | 12 ------------ manual/installation.tex | 28 ++++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 12 deletions(-) delete mode 100644 config/build_armclang_nompi.sh diff --git a/config/build_armclang_nompi.sh b/config/build_armclang_nompi.sh deleted file mode 100644 index f838a203a5..0000000000 --- a/config/build_armclang_nompi.sh +++ /dev/null @@ -1,12 +0,0 @@ -# This configuration was tested with Arm Compiler for HPC 18.4 - -# ARMPL_DIR is the path to the ARM Performance Libraries -#export ARMPL_DIR= - -cmake -DCMAKE_C_COMPILER=armclang -DCMAKE_CXX_COMPILER=armclang++ -DQMC_MPI=0 \ - -DCMAKE_C_COMPILER_ID=Clang -DCMAKE_CXX_COMPILER_ID=Clang -DCMAKE_CXX_COMPILER_VERSION=5.0 -DCMAKE_CXX_STANDARD_COMPUTED_DEFAULT=98 \ - -DCMAKE_C_FLAGS="-march=armv8-a" -DCMAKE_CXX_FLAGS="-march=armv8-a" \ - -DLAPACK_LIBRARIES="-L$ARMPL_DIR/lib -larmpl_mp" \ - -DFFTW_INCLUDE_DIR="$ARMPL_DIR/include" \ - -DFFTW_LIBRARIES="$ARMPL_DIR/lib/libarmpl_mp.a" \ - .. diff --git a/manual/installation.tex b/manual/installation.tex index de275a3629..8f6b43bdea 100644 --- a/manual/installation.tex +++ b/manual/installation.tex @@ -938,6 +938,34 @@ \subsection{Installing on NERSC Cori, Xeon Phi KNL partition, Cray XC40} \end{verbatim} +\subsection{Installing on systems with ARMv8 based processors} +The following build recipe has been verified using `Arm Compiler for HPC' on the ANL JLSE Comanche system with Cavium ThunderX2 processors. +\begin{verbatim} +# load armclang compiler +module load Generic-AArch64/RHEL/7/arm-hpc-compiler/18.4 +# load Arm performance libraries +module load ThunderX2CN99/RHEL/7/arm-hpc-compiler-18.4/armpl/18.4.0 +# define path to pre-installed packages +export HDF5_ROOT= +export BOOST_ROOT= # header-only, no need to build +\end{verbatim} +Then using the following command +\begin{verbatim} +mkdir build_armclang +cd build_armclang +cmake -DCMAKE_C_COMPILER=armclang -DCMAKE_CXX_COMPILER=armclang++ -DQMC_MPI=0 \ + -DCMAKE_C_COMPILER_ID=Clang -DCMAKE_CXX_COMPILER_ID=Clang \ + -DCMAKE_CXX_COMPILER_VERSION=5.0 -DCMAKE_CXX_STANDARD_COMPUTED_DEFAULT=98 \ + -DCMAKE_C_FLAGS="-march=armv8-a" -DCMAKE_CXX_FLAGS="-march=armv8-a" \ + -DLAPACK_LIBRARIES="-L$ARMPL_DIR/lib -larmpl_mp" \ + -DFFTW_INCLUDE_DIR="$ARMPL_DIR/include" \ + -DFFTW_LIBRARIES="$ARMPL_DIR/lib/libarmpl_mp.a" \ + .. +make -j 56 +\end{verbatim} +Note that armclang is recognized as an `unknown' compiler by cmake (v3.12.4) and we need to force it as clang to apply necessary flags. +This workaround will not be necessary in the near future. + \subsection{Installing on Windows} Install the Windows Subsystem for Linux and Bash on Windows. Open a bash shell and follow the install directions for Ubuntu in Section \ref{sec:buildubuntu}. From c3eb8903702a101264c39352bd51bed6ac0e6519 Mon Sep 17 00:00:00 2001 From: "Paul R. C. Kent" Date: Wed, 7 Nov 2018 09:59:00 -0500 Subject: [PATCH 3/3] Add date for ARM build instructions --- manual/installation.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual/installation.tex b/manual/installation.tex index 8f6b43bdea..4d5157da42 100644 --- a/manual/installation.tex +++ b/manual/installation.tex @@ -939,7 +939,7 @@ \subsection{Installing on NERSC Cori, Xeon Phi KNL partition, Cray XC40} \end{verbatim} \subsection{Installing on systems with ARMv8 based processors} -The following build recipe has been verified using `Arm Compiler for HPC' on the ANL JLSE Comanche system with Cavium ThunderX2 processors. +The following build recipe was verified using the `Arm Compiler for HPC' on the ANL JLSE Comanche system with Cavium ThunderX2 processors on 6 November 2018. \begin{verbatim} # load armclang compiler module load Generic-AArch64/RHEL/7/arm-hpc-compiler/18.4