Gromacs 4.6.6 for Primargy RX300/CX250
ウェブページ
バージョン
4.6.6
ビルド環境
- Intel Compiler 13.1.1
- Cuda compilation tools, release 5.0, V0.2.1221
- Intel MPI 4.1.0.030
- cmake 2.8.8
ビルドに必要なファイル
- gromacs-4.6.6.tar.gz
- no-gcc-version.patch
パッチファイル
no-gcc-version.patch
--- cmake/gmxManageNvccConfig.cmake.orig 2014-06-20 21:17:13.000000000 +0900
+++ cmake/gmxManageNvccConfig.cmake 2014-07-17 08:52:24.341434579 +0900
@@ -109,16 +109,16 @@
# as even with icc use as host compiler, when icc's gcc compatibility
# mode is higher than the max gcc version officially supported by CUDA,
# nvcc will freak out.
- if (UNIX AND CMAKE_C_COMPILER_ID MATCHES "Intel" AND
- CUDA_HOST_COMPILER_AUTOSET)
- if (CUDA_VERSION VERSION_LESS "4.1")
- message(STATUS "Setting Intel Compiler compatibity mode to gcc 4.4 for nvcc host compilation")
- set(CUDA_HOST_COMPILER_OPTIONS "${CUDA_HOST_COMPILER_OPTIONS};-Xcompiler;-gcc-version=440;")
- else()
- message(STATUS "Setting Intel Compiler compatibity mode to gcc 4.5 for nvcc host compilation")
- set(CUDA_HOST_COMPILER_OPTIONS "${CUDA_HOST_COMPILER_OPTIONS};-Xcompiler;-gcc-version=450;")
- endif()
- endif()
+# if (UNIX AND CMAKE_C_COMPILER_ID MATCHES "Intel" AND
+# CUDA_HOST_COMPILER_AUTOSET)
+# if (CUDA_VERSION VERSION_LESS "4.1")
+# message(STATUS "Setting Intel Compiler compatibity mode to gcc 4.4 for nvcc host compilation")
+# set(CUDA_HOST_COMPILER_OPTIONS "${CUDA_HOST_COMPILER_OPTIONS};-Xcompiler;-gcc-version=440;")
+# else()
+# message(STATUS "Setting Intel Compiler compatibity mode to gcc 4.5 for nvcc host compilation")
+# set(CUDA_HOST_COMPILER_OPTIONS "${CUDA_HOST_COMPILER_OPTIONS};-Xcompiler;-gcc-version=450;")
+# endif()
+# endif()
set(CUDA_HOST_COMPILER_OPTIONS "${CUDA_HOST_COMPILER_OPTIONS}"
CACHE STRING "Options for nvcc host compiler (do not edit!)." FORCE)
注意事項
GMX_CPU_ACCELERATION=AVX_256にするとregressiontestsのfreeenergyの2つのテストでFailとなる。
そのため、SSE4.1も別途用意した。
ビルド手順
#!/bin/csh -f
umask 022
set file_gromacs=/home/users/${USER}/build/gromacs466/gromacs-4.6.6.tar.gz
set file_patch1=/home/users/${USER}/build/gromacs466/no-gcc-version.patch
set work=/work/users/${USER}
set prefix_avx256=/local/apl/pg/gromacs466
set prefix_sse41=/local/apl/pg/gromacs466_sse41
#------------------------------------------------------------------------------
cd ${work}
if (-d gromacs-4.6.6) then
mv gromacs-4.6.6 gromacs-4.6.6-erase
rm -rf gromacs-4.6.6-erase &
endif
tar xzf ${file_gromacs}
cd gromacs-4.6.6
patch -p0 < ${file_patch1}
#
setenv CC icc
setenv CXX icpc
setenv F77 ifort
setenv F90 ifort
setenv FC ifort
mkdir rccs-gpu
cd rccs-gpu
cmake28 .. -DCMAKE_INSTALL_PREFIX=${prefix_avx256} \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DGMX_MPI=OFF \
-DGMX_GPU=ON \
-DGMX_DOUBLE=OFF \
-DGMX_FFT_LIBRARY=mkl \
-DREGRESSIONTEST_DOWNLOAD=OFF
make -j 12
make install
cd ..
#
mkdir rccs-d
cd rccs-d
cmake28 .. -DCMAKE_INSTALL_PREFIX=${prefix_avx256} \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DGMX_MPI=OFF \
-DGMX_GPU=OFF \
-DGMX_DOUBLE=ON \
-DGMX_FFT_LIBRARY=mkl \
-DREGRESSIONTEST_DOWNLOAD=OFF
make -j 12
make install
cd ..
#
mkdir rccs-gpu-sse41
cd rccs-gpu-sse41
cmake28 .. -DCMAKE_INSTALL_PREFIX=${prefix_sse41} \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DGMX_MPI=OFF \
-DGMX_GPU=ON \
-DGMX_DOUBLE=OFF \
-DGMX_FFT_LIBRARY=mkl \
-DGMX_CPU_ACCELERATION=SSE4.1 \
-DREGRESSIONTEST_DOWNLOAD=OFF
make -j 12
make install
cd ..
#
mkdir rccs-d-sse41
cd rccs-d-sse41
cmake28 .. -DCMAKE_INSTALL_PREFIX=${prefix_sse41} \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DGMX_MPI=OFF \
-DGMX_GPU=OFF \
-DGMX_DOUBLE=ON \
-DGMX_FFT_LIBRARY=mkl \
-DGMX_CPU_ACCELERATION=SSE4.1 \
-DREGRESSIONTEST_DOWNLOAD=OFF
make -j 12
make install
cd ..
#
setenv CC mpiicc
setenv CXX mpiicpc
setenv F77 mpiifort
setenv F90 mpiifort
setenv FC mpiifort
mkdir rccs-mpi
cd rccs-mpi
cmake28 .. -DCMAKE_INSTALL_PREFIX=${prefix_avx256} \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DGMX_MPI=ON \
-DGMX_GPU=OFF \
-DGMX_DOUBLE=OFF \
-DGMX_FFT_LIBRARY=mkl \
-DMPIEXEC=/opt/intel/impi/4.1.0.030/intel64/bin/mpirun \
-DREGRESSIONTEST_DOWNLOAD=OFF
make -j 12
make install
cd ..
#
mkdir rccs-mpi-d
cd rccs-mpi-d
cmake28 .. -DCMAKE_INSTALL_PREFIX=${prefix_avx256} \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DGMX_MPI=ON \
-DGMX_GPU=OFF \
-DGMX_DOUBLE=ON \
-DGMX_FFT_LIBRARY=mkl \
-DMPIEXEC=/opt/intel/impi/4.1.0.030/intel64/bin/mpirun \
-DREGRESSIONTEST_DOWNLOAD=OFF
make -j 12
make install
cd ..
#
mkdir rccs-mpi-sse41
cd rccs-mpi-sse41
cmake28 .. -DCMAKE_INSTALL_PREFIX=${prefix_sse41} \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DGMX_MPI=ON \
-DGMX_GPU=OFF \
-DGMX_DOUBLE=OFF \
-DGMX_FFT_LIBRARY=mkl \
-DGMX_CPU_ACCELERATION=SSE4.1 \
-DMPIEXEC=/opt/intel/impi/4.1.0.030/intel64/bin/mpirun \
-DREGRESSIONTEST_DOWNLOAD=OFF
make -j 12
make install
cd ..
#
mkdir rccs-mpi-d-sse41
cd rccs-mpi-d-sse41
cmake28 .. -DCMAKE_INSTALL_PREFIX=${prefix_sse41} \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DGMX_MPI=ON \
-DGMX_GPU=OFF \
-DGMX_DOUBLE=ON \
-DGMX_FFT_LIBRARY=mkl \
-DGMX_CPU_ACCELERATION=SSE4.1 \
-DMPIEXEC=/opt/intel/impi/4.1.0.030/intel64/bin/mpirun \
-DREGRESSIONTEST_DOWNLOAD=OFF
make -j 12
make install
cd ..