- Infos im HLRS Wiki sind nicht rechtsverbindlich und ohne Gewähr -
- Information contained in the HLRS Wiki is not legally binding and HLRS is not responsible for any damages that might result from its use -

CRAY XC40 local Modules: Difference between revisions

From HLRS Platforms
Jump to navigationJump to search
(Created page with " == Third party tools == === Gnu-Tools === The module gnu-tools collects more recent versions of basic functionalities, including the GNU building system ('''autoconf''', '''...")
 
Line 3: Line 3:


=== Gnu-Tools ===
=== Gnu-Tools ===
The module gnu-tools collects more recent versions of basic functionalities, including the GNU building system ('''autoconf''', '''automake''', '''libtool''', '''m4'''), as well as '''bash''', '''cmake''', '''gperf''', '''git''', '''gwak''', '''swig''', and '''bison'''.  
The module gnu-tools collects more recent versions of basic functionalities, including the GNU building system ('''autoconf''', '''automake''', '''libtool''', '''m4'''), as well as '''bash''', '''cmake''', '''gperf''', '''git''', '''gwak''', '''swig''', '''bison''', and '''gnuplot'''.  
The actual versions can be listed using
The actual versions can be listed using



Revision as of 09:04, 10 March 2016

Third party tools

Gnu-Tools

The module gnu-tools collects more recent versions of basic functionalities, including the GNU building system (autoconf, automake, libtool, m4), as well as bash, cmake, gperf, git, gwak, swig, bison, and gnuplot. The actual versions can be listed using

% module whatis tools/gnu-tools

To use the actual version of bash with full support of the module environment you can simply call

% bash -l myScript.sh

or define the absolute path in the first line of your script

#!/opt/hlrs/tools/gnu-tools/generic/bin/bash -l

Octave

GNU Octave is a high-level interpreted language, primarily intended for numerical computations. It provides capabilities for the numerical solution of linear and nonlinear problems, and for performing other numerical experiments. It also provides extensive graphics capabilities for data visualization and manipulation. GNU Octave is normally used through its interactive interface (CLI and GUI), but it can also be used to write non-interactive programs. The GNU Octave language is quite similar to Matlab so that most programs are easily portable.

Octave is compiled to run on the compute nodes and can be launched e.g. in an interactive session:

% qsub -I [options]
% module load tools/octave 
% aprun -n 1 -N 1 octave octave.script

PARPACK

With the module hlrs_PARPACK the collections of f77 routines designed to solve large scale eigenvalue problems (ARPACK) and the parallel version (PARPACK) are provided. To link these libraries you only have to load the module

 numlib/hlrs_PARPACK 

Important Features of ARPACK:

  • Reverse Communication Interface.
  • Single and Double Precision Real Arithmetic Versions for Symmetric, Non-symmetric,
  • Standard or Generalized Problems.
  • Single and Double Precision Complex Arithmetic Versions for Standard or Generalized Problems.
  • Routines for Banded Matrices - Standard or Generalized Problems.
  • Routines for The Singular Value Decomposition.
  • Example driver routines that may be used as templates to implement numerous Shift-Invert strategies for all problem types, data types and precision.
Warning: after swapping the PrgEnv this module has to be (re)loaded again (module load numlib/hlrs_PARPACK).


Python

Actual versions of Python can be used loading the module tools/python.

SLEPc

The SLEPc (Scalable Library for Eigenvalue Problem Computations) is an extantion of PETSc for solving linear eigenvalue problems in either standard or generalized form. Furthermore, SLEPc can compute partial SVD of a large, sparse, rectangular matrix, and solve nonlinear eigenvalue problems (polynomial or general). Additionally, SLEPc provides solvers for the computation of the action of a matrix function on a vector. SLEPc can be used for real (default) and complex arithmetics, therefore two different modules are provided:

  module load numlib/hlrs_SLEPc    # deafault version

OR

  module load numlib/hlrs_SLEPc/3.5.3-complex 

As usual the modules provides all compiler and linker flags, thus ex1.c (containing SLEPc calls) can be simply compiled by

 
  cc ex1.c -o ex1.exe
Warning: Please select first the desired PrgEnv or after swapping the PrgEnv (re)loaded this module again (module load numlib/hlrs_SLEPc). Supported programming environments are PrgEnv-cray, PrgEnv-gnu, and PrgEnv-intel.


SVN

Subversion is installed with the following repository access (RA) modules: ra_svn, ra_local, ra_serf. Plaintext and GPG-Agent authentication credential caches are avaiable.

  module load tools/svn

Utilities for processing netcdf files

The module tools/netcdf_utils contains the follwing tools:

Third party scientific software

CP2K

CP2K is a freely available (GPL) program 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. It is very well and consistently written, standards-conforming Fortran 95, parallelized with MPI and in some parts with hybrid OpenMP+MPI as an option.

CP2K provides state-of-the-art methods for efficient and accurate atomistic simulations, sources are freely available and actively improved. It has an active international development team, with the unofficial head quarters in the University of Zürich.

The molecular simulation package is installed, optimized for the present architecture, compiled with gfortran using optimized versions of libxc, libint and libsmm.

 module load chem/cp2k 

provide four versions of different kind of parallelizations:

 cp2k.ssmp  - only OpenMP
 cp2k.popt  - only MPI 
 cp2k.psmp  - hybrid MPI + OpenMP
 cp2k.pdbg  - only MPI compiled with debug flags

After loading the related module (chem/cp2k), the binary can be directly called in the job submission script, e.g.:

aprun -n 24 -N 24 cp2k.psmp myCp2kInputFile.inp > myOutput.out

Some examples for CP2K input files are provided on the CP2K homepage and there also exist the input reference.

Gromacs

GROMACS (GROningen MAchine for Chemical Simulations) is a molecular dynamics package which can be used by

 module load chem/gromacs 


LAMMPS

LAMMPS "LAMMPS Molecular Dynamics Simulator" is a molecular dynamics package which can be used by

 module load chem/lammps 

The executable is named lmp_CrayXC.

NAMD

NAMD (Scalable Molecular Dynamics) is a parallel molecular dynamics code designed for high-performance simulation of large biomolecular systems, based on Charm++ parallel objects. The package can be loaded using

 module load chem/namd 

A tutorial can be found here.

OpenFOAM

OpenFOAM (Open Field Operation and Manipulation) is an open source CFD software package. Multiple versions of OpenFOAM are available compiled with gnu and intel. Available versions can be listed using

 module avail cae/openfoam 

OpenFOAM can be used with PrgEnv-gnu and PrgEnv-intel, e.g.

 
module swap PrgEnv-cray PrgEnv-gnu
module load cae/openfoam

Furthermore, Foam-extend is available but only for PrgEnv-gnu

 
module swap PrgEnv-cray PrgEnv-gnu
module load cae/openfoam/3.0-extend

As a first example a test case of incompressible laminar flow in a cavity using blockMesh and icoFoam is provided, which can be found in the directory

 /opt/hlrs/cae/fluid/OPENFOAM/ESM/CRAY-Versionen/hornet-example 

To run this example you have to copy the directory and submit the prepareOF and runOF jobs.

It is also possible to use CrayPAT profiling for certain version of OpenFOAM. Therefore, specialized module exist providing relevant versions cae/openfoam/xxx-perftools, where xxx are version numbers. The related binaries still has to be instrumented using

 
pat_build $FOAM_APPBIN/icoFoam

As a result a binary icoFoam+pat is generated in the current directory. Using these binary in the batch script the profiling will be performed. To analyze the resulting profiling data pat_report and further tools can be used (Cray Performance Tools).

You can build your own solver by using the provided OpenFOAM environment. There exists environment variables providing a infrastructure to compile your solver with OpenFOAM and provide links for fast access. These environment variables for building own solvers point to your home directory ($HOME/OpenFoam), because of technical reasons. But please run you application on the Lustre file system. An example how to build and use an own solver:

$> mkdir -p ~/OpenFoam/test; cd !$                                    # creates a directory for the new solver and change into it
$> cp -r $FOAM_SOLVERS/incompressible/pisoFoam testsolver; cd !$      # copies and existing solver directory and change into it
$> mv pisoFoam.C myFoam.C; vi !$                                      # rename the solver and perform your modifications
$> vi Make/files		    	                              # change file and directory names in this file
$> wclean; wmake                                                      # build this solver
$> vi job.pbs			                                      # use the new binary "$(FOAM_USER_APPBIN)/myTestFoam" in your batch skript
$> qsub job.pbs                                                       # start the job

Thus you build a solver in the home directory and using the environment variable $(FOAM_USER_APPBIN)/... when starting your application in your workspace.