Lenngren
Software on EM64T clusters such as Lenngren.
Programming; Languages, Libraries and Tools
A note about compilers
The Intel compilers are the recommended compiler suite for Lenngren. In general the Intel compilers generates faster code than the GNU compilers. The GNU compilers are available for compatibility reasons and as a backup in case the Intel compilers has problems with a particular code.
The Intel compilers optimize very aggressively which may cause problems with certain codes. Be sure to verify your results when compiling with high levels of optimization. In rare cases reducing the optimization level may actually make the code run faster.
C
Three C compilers are available. The standard GNU gcc compiler, the Portland Group pgcc compiler and the Intel icc C compiler
Gnu GCC
On-line help:
> man gcc
> info gcc
PGI pgcc
Environment:
module add pgi
On-line help:
> man pgcc
Intel icc
Environment:
module add i-compilers
On-line help:
Intel C/C++ Compiler Information page
> icc -help
C++
Three C++ compilers are available. The standard GNU g++ compiler, the Portland Group pgCC compiler and the Intel icpc C/C++ compiler
GNU g++
On-line help:
GCC Homepage
> man g++
> info g++
PGI pgCC
On-line help:
> man pgCC
Intel icpc
See information about icpc above.
Fortran77
Three Fortran77 compilers are available. The GNU g77 compiler, the Portland Group pgf77 compiler and the Intel ifort F77/F90 compiler
GNU g77
On-line help:
> man g77
> info g77
PGI pgf77
Environment:
module add pgi
On-line help:
> man pgf77
Intel ifort
Environment:
module add i-compilers
On-line help:
Intel Fortran Compiler Information page
> ifort -help
Known bug:
Sometimes ifort fails with a Segmentation fault. This is actually the license handler flexlm that segfaults. This bug can be circumvented by doing (in tcsh) unsetenv LM_LICENSE_FILE.
Fortran90
Two Fortran90 compilers are available. The Portland Group pgf90 compiler and the Intel ifort F77/F90 compiler
PGI pgf90
Environment:
module add pgi
On-line help:
PGI Product Documentation
> man pgf90
Intel ifc
See information about ifort above.
MPI
MPI is a library specification for message-passing, proposed as a standard by a broadly based committee of vendors, implementors, and users.
The currently provided MPI implementation is Scali MPI Connect from Scali. More detailed information can be found in the Introduction to SCALI MPI .
Scali MPI
Environment:
module add scampi
module add i-compilers (to use the Intel compilers)
On-line help:
Performance Tools
mpiP - Lightweight MPI Performance Monitoring
mpiP is a quick and easy way to analyze the MPI bottlenecks in your application. Just link with the library as specified in the module. Here is an example of output from an 8 processor run of the MILC quantum chemistry code.
Environment:
module add mpiP
On-line help:
PAPI - Performance Application Programming Interface
PAPI is a library to gather hardware performance information directly from the processor. It is used by performance tools as well as directly by application engineers.
Environment:
module add papi
On-line help:
module show papi
PapiEx - Execute arbitrary application and measure hardware performance counters with PAPI
PapiEx is a performance analysis tool designed to transparently and passively measure the hardware performance counters of an application using PAPI. Note: To measure 32-bit floating-point operations you need to set the environment variable PAPI_PENTIUM4_FP to SSE_SP. To go back to measuring 64-bit floating-point operations set it to SSE_DP.
Environment:
module add papi monitor papiex
On-line help:
module show papiex
Numerical Libraries
Intel Math Kernel Libraries
The Intel Math Kernel Library (MKL) contains implementations of BLAS (level 1,2,3 and extended) and LAPACK, the CBLAS interface to BLAS and FFT and vector math functions. There are versions of the library tuned for Pentium III, Pentium 4, Xeon with EM64T and Itanium processors.
Environment:
module add mkl
On-line help:
module show mkl
Math Kernel Library Documentation
Chemistry
Gaussian 03
Gaussian is a connected system of programs for performing a variety of semi-empirical and ab initio molecular orbital calculations. Present revision of Gaussian is 03.D01.
Gaussian is associated with two types of parallelism:
- Shared memory parallelism on a single multi-cpu node. The default is to run on both processors of the EM64T node
- Distributed memory parallelism (using Linda) over multiple nodes.
This latest release supports both type of parallelism. The number of nodes should be set in the gaussian input file with the %nproclinda option
Environment:
module add gaussian/latest
Sample input:
$g03root/g03/tests/com
Batch script:
esubmit -n <nodes> -t <minutes> $g03root/g03/g03.easy jobname
On-line help:
> ghelp
Gamess
General Atomic and Molecular Electronic Structure System PRESENTLY, THE INSTALLATION OF GAMESS DOES NOT WORK!
Environment:
module add gamess
On-line help:
gmshelp
Sample input:
$GMSPATH/../../tests
Batch script:
esubmit -n <nodes> -t <minutes> $GMSPATH/gamess.easy jobname
NWChem
Highly parallelized Quantum chemistry/molecular dynamics code from Pacific Northwest National Laboratories (PNNL)
Environment:
module add nwchem
Batch script:
/pdc/vol/nwchem/4.7/bin/nwchem.easy
Examples:
/pdc/vol/nwchem/4.7/examples
Documentation:
NAMD
A parallel, object-oriented molecular dynamics code designed for high-performance simulation of large biomolecular systems
Environment:
module add namd
Batch script:
$NAMDROOT/namd.easy
Documentation:
Gromacs
A molecular dynamics package
Environment:
module add gromacs
Batch script:
/pdc/vol/gromacs/3.3.1/bin/gromacs.easy
Documentation:
Dalton
An ab initio electronic structure program
Environment:
module add dalton
Batch script
/pdc/vol/dalton/2.0/bin/dalton.easy
MOPAC
A simple semi-empirical serial program
Environment:
module add mopac
Execution:
mopac input.mop
Home:
http://openmopac.net/
Multiphysics
Comsol
A finite-element based program for simulating multiphysics and single-physics applications.
Note that this code is not parallel.
Environment:
module add comsol
Documention:
CEM
Efield
Package for solving the Maxwell equations.
Environment:
module add efield



