Building the GAMESS with Intel® Compilers, Intel® MKL and Intel® MPI on Linux


Introduction :
This document explains how to build GAMESS using the Intel Software products:
Intel® C++ Compiler for Linux,
Intel® Fortran Compiler for LINUX,
Intel® MKL,
Intel® MPI for Linux.


Version :
GAMESS version January 12, 2009 R3 for 64 bit IA64/x86_64.

Obtaining Source Code :
The GAMESS sources can be downloaded here.

Prerequisites :
Should be installed Intel® Compilers with Intel® MKL and Intel® MPI for Linux.

Environment Set Up :
Environment variables for the Intel® C++ Compiler Professional Edition for Linux, Intel® Fortran Compiler Professional Edition for Linux and Intel® MPI should be set.
E.g.
$export INTEL_COMPILER_TOPDIR="/opt/intel/Compiler/11.1/046"
$. $INTEL_COMPILER_TOPDIR/bin/intel64/ifortvars_intel64.sh
$. $INTEL_COMPILER_TOPDIR/bin/intel64/iccvars_intel64.sh
$. /opt/intel/impi/3.2.1.009/bin64/mpivars.sh

Building the Application :
1)Copy/move tar file gamess-current.tar.gz to the directory /opt.

2)Decompress source files
$ tar -zxvf gamess-current.tar.gz
.
3)
$cd ./gamess
.
4) Creating actvte.x file:
$cd ./tools
$cp actvte.code actvte.f
Replace all "*UNX" by " "(4 spaces with out " ") in the file actvte.f. Can be used any text editor.
$ifort -o actvte.x actvte.f
$rm actvte.f
$cd ..
.
5)Building the Distributed Data Interface(DDI) with Intel® MPI:
$cd ./ddi
a) Editing file ./compddi.
Set machine type (approximately line 18):
set TARGET=linux-ia64
Set MPI communication layer (approximately line 48):
set COMM = mpi
Set include directory for Intel® MPI (approximately line 105):
set MPI_INCLUDE_PATH = '-I/net/spdr62/opt/spdtools/impi/intel64/3.2.011/include64'
b)Build DDI with Intel® MPI
$ ./compddi >&compddi.log
c) If building completed successfully then library libddi.a will appear. Otherwise check compddi.log for errors.
d) $cd ..
.
6) Compiling the GAMESS:
a) Editing file ./comp
Set machine type (approximately line 15):
set TARGET=linux-ia64
Set the GAMESS root directory (approximately line 16):
chdir /opt/gamess
Uncomment line 1461:
setenv MKL_SERIAL YES
.
b) Editing file ./compall:
Set machine type (approximately line 16):
set TARGET=linux-ia64
Set the GAMESS root directory (approximately line 17):
chdir /opt/gamess
Set to use Intel® C++ Compiler (approximately line 70):
if ($TARGET == linux-ia64) set CCOMP='icc'
c) Compiling the GAMESS:
$compall >&compall.log
Check file compall.log for errors.
d)
$cd ..
.
7)Liniking the GAMESS with Intel® Software products:
a) Editing file ./lked
Set machine type (approximately line 18):
set TARGET=linux-ia64
Set the GAMESS root directory (approximately line 19):
chdir /opt/gamess
Set MKL environment (approximately line 509):
setenv MKLPATH /net/spdr62/opt/spdtools/compiler/cpro/Compiler/11.1/046/mkl/lib/em64t
setenv MKL_SERIAL YES
set mklver=10
Set the message passing libraries in a single line (approximately line 714):
set MSG_LIBRARIES='../ddi/libddi.a -L/net/spdr62/opt/spdtools/impi/intel64/3.2.011/lib64 -lmpi -lmpigf -lmpigi -lrt -lpthread'
b) Link the GAMESS
$./lked >&lked.log
If linking completed successfully then executable file gamess.00.x will appear. Otherwise check lked.log for errors.

Running the Application :
This section below describes how to execute GAMESS with Intel® MPI. For further information check file ./ddi/readme.ddi.
For the testing GAMESS will be used script rungms as the base.
1)
Only few amends are needed.
Set the target for execution to mpi (line 59):
set TARGET=mpi
.
Set a directory SCR where large temporary files can reside(line 60):
E.g.
set SCR=/opt/gamess/tests
.
Correct the setting environment variables ERICFMT and MCPPATH (lines 127and 128):
E.g.
setenv ERICFMT /opt/gamess/ericfmt.dat
setenv MCPPATH /opt/gamess/mcpdata
.
Replace all “~$USER” by “/opt/gamess/tests”. Or by other directory.
NOTE: Directory /opt/gamess/tests/scr should exist. If no then create it.
Replace all “/home/mike/gamess” by “/opt/gamess”.
Correct the setting environment variables for Intel® MKL and MPI (lines 948 and 953):
E.g.
setenv LD_LIBRARY_PATH /opt/Compiler/11.1/046/mkl/lib/em64t
setenv LD_LIBRARY_PATH /opt/intel/impi/intel64/3.2.011/lib64:$LD_LIBRARY_PATH
.
Correct setting environment variables to execution Intel® MPI path (line 954):
E.g. set path=(/opt/intel/impi/intel64/3.2.011/bin64 $path)
.
Done.
2)
Now choose the testcase from directory ./tests and run GAMESS.
E.g.
$./rungms exam08
The output data will be stored in the directory /opt/gamess/scr.

3) To execute GAMESS on 2 or more processes on 1 node:
$ ./rungms exam08 00 2
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.