Software Ada / Kal

From C3SE
Jump to: navigation, search

Contents

Modules

At the Ada/Kal system the modules environment is used by the user to specify which application/software he or she wants to use on the cluster. It is a very flexible solution were the user can add, remove or switch application/software by a single command.

The modules package allows dynamical modification of a user's environment (PATH etc.) via the use of modulefiles. A modulefile contains information needed to configure the user's shell for the desired application. Modules can be loaded and unloaded dynamically.

To see the available applications/software installed use:

module avail

To see what modulefiles are loaded at the moment use:

module list

To load/unload a modulefile making a certain application/compiler available or not use:

module load <modulefile>
module add <modulefile>
module unload <modulefile>
module rm <modulefile>

Example: To use the Intel compiler suite version 9.1 use:

module load intel/compilers/9.1

To add/remove a modulefile to your initializations files making the application etc. available or not for every new session use:

module initadd <modulefile>
module initrm <modulefile>

This will add the desired modulefile to your .bashrc/.cshrc file.

Note some applications need to load their environment on all nodes (this is noted in the section describing that program) then you have to load the module in your .bashrc/.cshrc with the initadd command. However, if you use several different modules it helps to keep track of your environment by putting the module load command in your job-script.

For more module commands and further info look at the man pages of modules, "man module".


Software

Compilers

Current compiler support:
Compiler C/C++ f77/f90 compiler module MPI module
gcc (3.4) yes yes/no not needed mpich/1.2.7/gcc/3.4
gcc (4.1) yes yes/yes not needed mpich/1.2.7/gcc/4.1
intel(9.1) yes yes/yes intel/compilers/9.1 mpich/1.2.7/intel/9.1
intel(10.1) yes yes/yes intel/compilers/10.1 Not yet
pgi(6.2) yes yes/yes pgi/6.2 mpich/1.2.7/pgi/6.2
pgi(7.0) yes yes/yes pgi/7.0 Not yet
pgi(8.0) yes yes/yes pgi/8.0 Not yet


e.g.: to use the Portland group compilers your .bashrc/.cshrc should have the following:

module load pgi/8.0

GNU

With the linux installation comes the GNU compilers These are for 3.4.6

  • gcc - C/C++
  • g77 - Fortran77

and for 4.1.0

  • gcc4 - C/C++
  • gfortran - Fortran 77/90/95

The GNU compilers are the default ones, you don't have to give a module command

A not very well documented feature of the gprof command is the GMON_OUT_PREFIX environment variable. If this variable is set each thread of the executable will generate a gmon file named $GMON_OUT_PREFIX.pid. Each gmon file can then be analyzed separately or examined as a whole

gprof -s $GMON_OUT_PREFIX.*
gprof your_executable gmon.sum

For more information on the gprof command see the corresponding manual or info pages.

Intel

The intel compilers are

  • icc/icpc - C/C++
  • ifort - fortran77/fortran90

Portland Group

The Portland Group Compilers are:

  • pgf77 - Fortran 77 compiler
  • pgf90 - Fortran 90 compiler
  • pgf95 - Fortran 95 compiler
  • pgcc - C compiler
  • pgCC - C++ compiler

Use

Ex.: to use the Portland compilers 8.0

module load pgi/8.0

The user manuals are here: 6.2, 7.0 and 8.0.


Libraries

MKL

The Intel Math Kernel Libraries are installed. Currently installed versions are:

  • 10.0
  • 10.1

To use Intel MKL issue, for version 10.0,

module load intel/mkl/10.0

MKL includes optimized math routines such as BLAS/LAPACK, ScaLAPACK, sparse solvers, FFT together with wrappers for FFTW2.x and FFTW3.0, Vector Math Library, Vector Random Number Generators etc.

Manual/documentation can be found here: 10.0 and 10.1

CMKL

NOTE: Since version 10.0 of Intel MKL, CMKL and MKL has been merged into one product.

The intel Cluster Math Kernel Libraries are installed and paths are set by

module load intel/cmkl/9.0

CMKL includes optimized versions of fftw2, fftw3, blacs, lapack, scalapack...

Manual/documentation can be found here: 9.0.


PETSc

There are serial and parallel versions of PETSc available on Kal and Ada. The parallel versions are built with OpenMPI/1.3, and all versions are built with intel compilers and intel MKL versions 11.0 and 10.1, respectively.

There are no module files for PETSc. You will need to provide the path to the version of choice. The available PETSc versions are located relative to /c3se/apps/PETSc/ at

  • 3.0.0-p3/intel11.0-mkl10.1-openmpi1.3
  • 3.0.0-p3/complex-intel11.0-mkl10.1-openmpi1.3 (with fortran-kernels)
  • 3.0.0-p3/debugging-intel11.0-mkl10.1-serial (with debugging enabled, no MPI)

For legacy use, the following versions are also available

  • 2.3.3-p15/intel11.0-mkl10.1-serial
  • 2.3.3-p15/intel11.0-mkl10.1-openmpi1.3

For version 3, the file conf/variables, relative its above listed path, contain various variable declarations to be included in a makefile. For version 2, the corresponding file is named bmake/common/variables.

For information about how to use PETSc, please consult documentation available at the PETSc web-page.

Other software

Abaqus

Abaqus is a commercial finite-element package mainly used in solid mechanics applications. Current installed versions:

  • 6.5-6
  • 6.6-1
  • 6.6-5
  • 6.7-2
  • 6.7-5
  • 6.8-2
  • 6.9-2

use i.e.

module add abaqus/6.6-5

to set up the environment for Abaqus (substitute 6.6-5 for the version you want).

To use user-subroutines, compile your code to an object file (put -c on compile line) and use user=your_object_file.o as argument for Abaqus. Also put

module add abaqus/6.6-5 intel/compilers/10.1

in your job-script (or in your .cshrc/.bashrc, just like above substitute 6.6-5 and/or 10.1 for the versions you want).

Adams

ADAMS is a commercial dynamic system simulation software used for building and testing virtual prototypes of mechanical systems. Current installed version:

  • 2007r1

use e.g.

module add adams/2007r1

to set up the environment for Adams.

Ansys

Current installed versions:

  • 12.1

To use it, load the ansys-module. The Ansys program suite contains e.g.

  • Fluent
  • CFX
  • ICEM

Comsol Multi Physics

Current installed versions:

  • 3.3a
  • 3.5a

To use Comsol Multi Physics load the appropriate modulefile:

module load comsol/3.3a

If you, for example, want to run Comsol Multi Physics together with Matlab and the jobile bigjob.m use:

comsol matlab -ml -nodesktop -ml -nosplash -mlr bigjob

in your jobscript. Here the -ml flag is used to pass flags to Matlab. To use other Matlab version besides the default one use:

comsol matlab "path-to-matlab" -ml -nodesktop -ml -nosplash -mlr bigjob

CP2K

CP2K is available on Ada and Kal.

"CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and classical pair and many-body potentials.", cp2k.berlios.de.

The currently installed version of CP2K is 2.0.1, it is built using intel ifort 9.1, and linked against intel MKL 10.1 and OpenMPI 1.3. There is a meta-module (cp2k/working-env) which resolves the necessary dependencies.

Example how to use CP2K in a batch script:

module load cp2k/working-env
cd $PBS_O_WORKDIR
mpirun cp2k <inputfile.inp>

CPMD

CPMD is available on KAL. The CPMD code is a parallellised plane wave/pseudopotential implementation of Density Functional Theory, particularly designed for ab-initio molecular dynamics. CPMD is copyrighted jointly by IBM Corp and by Max Planck Institute, Stuttgart, and is distributed free of charge to non-profit organizations.

Currently installed version

  • 3.11.1

To run CPMD (cpmd.x) in parallel on KAL you need to load the environment on all nodes with

module initadd cpmd/3.11.1

You submit with

nproc=`cat $PBS_NODEFILE|wc -l`
mpirun -m $PBS_NODEFILE -np $nproc cpmd.x cpmd_input_file

in your job script.

For more information on CPMD point your browser towards www.cpmd.org.

Diana

Diana is a commercial finite-element package mainly used in solid mechanics applications.

Current installed versions:

Fire

Fire is a commercial software package for CFD.

Currently installed version:

  • v2008.2
  • v2009.1

To use Fire load the appropriate modulefile

module load fire/2009

Fluent

Fluent is a commercial software package for CFD.

Currently installed version: Note: Ada only!

  • 6.3.26

To use Fluent load the appropriate modulefile

module load fluent/6.3.26

and start with the following arguments: -pethernet -ssh -cnf=$TMPDIR/mpichnodes -g

GAMESS

The General Atomic and Molecular Electronic Structure System (GAMESS) is a general ab initio quantum chemistry package. GAMESS is available under the condition that published work include citation of the program

"General atomic and molecular electronic structure system, M.W.Schmidt,
K.K.Baldridge, J.A.Boatz, S.T.Elbert, M.S.Gordon, J.H.Jensen, S.Koseki,
N.Matsunaga, K.A.Nguyen, S.J.Su, T.L.Windus, M.Dupuis, J.A.Montgomery, Journal
of Computational Chemistry, vol. 14, pages 1347-1363, 1993."

as well as citations to papers describing the implementation in cases when certain features of the code have been used.

Currently installed version

  • March-24-2007-R3


To run GAMESS (rungms) on ADA you need to load the environment on all nodes with

module initadd gamess/intel-9_1/March-24-2007-R3

You submit with

rungms input_file

in your job script. The number of cpus is taken from the

#PBS -l nodes=2:ppn=4

line in your job script. For more information on GAMESS, e.g. a manual, point your browser towards GAMESS

Gaussian

Gaussian is a electronic structure program. Gaussian is used by chemists, chemical engineers, biochemists, physicists and others for research in established and emerging areas of chemical interest.

Currently installed versions:

  • G03 Revision D.02
  • G03 Revision E.01

GaussView version 3.09, which is a graphical user interface (GUI) for Gaussian, is also available.

NOTE: if you want to use Gaussian send an email to our support address.

To use Gaussian and GaussView load the appropriate modulefile, in this case Revision E.01:

module load gaussian/g03-RevE.01

After the module for Gaussian is loaded you can start GaussView by issuing the command:

gv

The installed version of Gaussian on Ada/Kal does not implement LINDA i.e. no mpi. Gaussian can run in parallell on one node over several CPU:s/core:s through SMP. To use SMP over 4 core:s you need to put

%NProcShared=4

in your Gaussian input file just before the Route Section.

The online manual for Gaussian can be found here.

Matlab

Matlab is a commercial package for numerical calculations. Current installed versions:

  • 7.3
  • 7.4
  • 7.5
  • 7.7
  • 7.9

I.e. to use matlab 7.7 load the 7.7 matlab module with

module load matlab/7.7

To submit your bigjob.m script to a queue you put

matlab -nojvm -nodesktop -r bigjob

in your job script, see Submitting jobs for more details on submitting jobs.

PCT (DCT)

The Parallel Computing Toolbox (formerly Distributed Computing Toolbox) is installed on the cluster. This means that you can start testing. Chalmers do not at the moment have a license for the Distributed Computing Server (formerly Distributed Computing Engine) which means that you can't use the full functionality as described for our queuing system torque here. You can however test using the local scheduler as explained here. There is a further limit, the local scheduler will only start up to eigth tasks a time, which means that you are limited to using one node (#PBS -l nodes=1:ppn=4 or #PBS -l nodes=1:ppn=8 depending on the system used). The last part of your submitting script could look like this,

cd $PBS_O_WORKDIR
module load matlab/7.5
matlab -nodisplay -r local_sched

where local_sched.m resides in your submit directory and could e.g. look like

sched = findResource('scheduler','type','local');
set(sched, 'DataLocation', './')
job1 = createJob(sched)
createTask(job1, @rand, 1, {{3,3} {3,3} {3,3} {3,3} {3,3}});
submit(job1)
waitForState(job1).

Compare with the example here.

When the job is finished you can start up matlab in that directory and type

sched = findResource('scheduler','type','local');
set(sched, 'DataLocation', './')
job1=findJob(sched)
results = getAllOutputArguments(job1);
results{1:5}

If you have run several jobs findJob will return an array. As mentioned in the beginning this in not the way Mathworks want you to use the toolbox but it gives you the possibility to evaluate and test the toolbox. Any feedback to support is welcome, this of course includes the question whether there is a great interest in the "Server".

Molcas

Molcas is a quantum chemistry software developed by scientists to be used by scientists. It is not primarily a commercial product and it is not sold in order to produce a fortune for its owner (the Lund University). The authors have tried in MOLCAS to assemble their collected experience and knowledge in computational quantum chemistry. MOLCAS is a research product and it is used as a platform by the Lund quantum chemistry group in their work to develop new and better computational tools in quantum chemistry.

Molcas is available for all C3SE users but it is still a licensed product and may not be used for commercial purposes.

Currently installed versions:

  • 7.4.080 (built with Intel compilers)

To use Molcas load either one of the Molcas modules:

module load molcas/7.4.080

For further info see the Molcas homepage, the online manual can be found here.

OpenFOAM

OpenFOAM is an open-source C++ library for solving partial differential equations. It is mainly used for computational fluid dynamics, for which there are many implemented solvers and different kinds of utilities. For further info see the OpenFOAM homepage, or contact hani(at)chalmers.se.

Currently installed versions:

  • 1.4.1_patch (this is the 1.4.1 version with bug-fixes from the OpenFOAM-Extend svn repository at SourceForge. You can see which files have been patched by opening /c3se/apps/OpenFOAM/OpenFOAM-1.4.1_patch/svnPatch.log, and you can see the latest date of patching by looking at the creation date of that file. If you need a more recent patch, contact hani(at)chalmers.se. Note that this version may be patched any time!)
  • 1.5.x (The present version was downloaded 081008, it is not yet decided how to deal with upgrades)
  • 1.5.x_Debug (For debugging. Same patch as openfoam/1.5.x)
  • 1.5.x_Prof (For profiling. Same patch as openfoam/1.5.x)

Note that the FoamX GUI is not supported at Ada!

It is NOT RECOMMENDED to load the OpenFOAM modules in ~/.bashrc. It is much better to load the modules in the submit script, so that each submit determines its own environment. Use one of the following in your submit script (see example below):

  • module load openfoam/1.4.1_patch mpich/1.2.7-PIC/gcc/4.1 cmake ; export args='. .'
  • module load openfoam/1.5.x ; export args='-case .'
  • module load openfoam/1.5.x_Debug ; export args='-case .'
  • module load openfoam/1.5.x_Prof ; export args='-case .'
  • module load openfoam/svea/1.5.x ; export args='-case .'

For new users of OpenFOAM, submit the following script (see Submitting jobs), which will run the interFoam damBreak tutorial in the directory where you submit from (the tutorial will be copied to a local damBreak directory):

Submit-script. Choose which OpenFOAM version to use by uncommenting ONE module line

#PBS -q ada
#For Svea, use '-q svea' and the openfoam/svea/1.5.x module below
#PBS -l walltime=01:00:00
#nodes x ppn must be the same as numberOfSubdomains in system/decomposeParDict:
#PBS -l nodes=1:ppn=4
#PBS -N damBreak
# End of arguments to qsub
# Load the OpenFOAM module for this specific job
#---------------- Uncomment ONE module line -------------------------
#module load openfoam/1.4.1_patch mpich/1.2.7-PIC/gcc/4.1 cmake ; export args='. .'
module load openfoam/1.5.x ; export args='-case .'
#module load openfoam/1.5.x_Debug ; export args='-case .'
#module load openfoam/1.5.x_Prof ; export args='-case .'
#module load openfoam/svea/1.5.x ; export args='-case .'
#--------------------------------------------------------------------
export P4_GLOBMEMSIZE=10240000
cd $PBS_O_WORKDIR
cp -r $FOAM_TUTORIALS/interFoam/damBreak .
cd damBreak
blockMesh `echo $args` >& log_blockMesh #Generates the grid
setFields `echo $args` >& log_setFields #Sets the initial fields
decomposePar `echo $args` >& log_decomposePar #Decomposes for parallel simulation
mpiexec `which interFoam` `echo $args` -parallel >& log #Runs interFoam in parallel
reconstructPar `echo $args` >& log_reconstructPar #Collects the decomposed results
rm -rf processor* #Deletes the decomposed files

View the results using (must be run from inside the damBreak direktory. Pick one of these modules):

cd damBreak
#module load openfoam/1.4.1_patch mpich/1.2.7-PIC/gcc/4.1 cmake ; export args='. .'
module load openfoam/1.5.x ; export args='-case .'
paraFoam `echo $args`

ParaView

ParaView is an open-source, multi-platform application designed to visualize data sets of size varying from small to very large.

Currently installed versions:

  • 2.6.2
  • 3.0.2

To use ParaView load either one of the ParaView modules:

module load paraview/2.6.2

module load paraview/3.0.2

For further info see the ParaView homepage.

Star-CD

Star-CD is a commercial package for CFD calculations. Note: No general license is available. Only users with a valid license can run Star-CD.

Currently installed versions

  • 4.02

To run Star-CD in parallell on Ada with MPI start with the following arguments:

star -dp -mpi=mpich `cat $TMPDIR/mpichnodes`

to run in parallel on KAL use

-mpi=hp

VTune

Intel VTune Performance Analyzer is a tool for application performance tuning. It uses a graphical user interface and no recompiles are required. It is compiler and language independent so it works with C, C++, Fortran etc.

Currently installed version:

  • 9.1

To use VTune load the appropriate modulefile:

module load intel/vtune/9.1

The GUI for VTune is accessed by issuing the command:

vtlec

A command line interface is also available:

vtl

Online documentation for the Intel VTune Performance Analyzer can be found here

Personal tools
Protected Pages
 
Toolbox