Difference between revisions of "Software and Libraries"

From oldwiki.scinet.utoronto.ca
Jump to navigation Jump to search
Line 60: Line 60:
  
 
It is recommended to load frequently used modules in the file [[Important_.bashrc_guidelines|.bashrc]] in your home directory.
 
It is recommended to load frequently used modules in the file [[Important_.bashrc_guidelines|.bashrc]] in your home directory.
 +
 +
 +
== Default and non-default modules ==
 +
 +
When you load a module with its 'short' name, you will get the ''default'' version, which is the most recent (usually), recommended version of that library or piece of software.  In general, using the short module name is the way to go. However, you may have code that depends on the intricacies of a non-default version.  For that reason, the most common older versions are also available as modules.  You can find all available modules using the <tt>module avail</tt> command.
 +
 +
 +
== Deprecated modules ==
 +
 +
Some older software for which newer versions exist, get deprecated. In contrast to the non-default modules, the deprecated modules are not found by the <tt>module avail</tt> command.  If you have a piece of legacy code that really depends on a deprecated version of a library (and we urge you to check that it does not work with newer versions!), then you can load a deprecated version by <tt>module load use.deprecated [deprecated-module-name]</tt>.
 +
 +
Currently, the following modules are deprecated:
 +
<pre>
 +
gcc/gcc-4.3.2          hdf5/184-v16-serial    intel/intel-v11.1.046              openmpi/1.3.3-intel-v11.0-ofed
 +
hdf5/183-v16-openmpi  hdf5/184-v18-intelmpi  intelmpi/impi-3.2.1.009            pgplot/5.2.2-gcc.old
 +
hdf5/183-v18-openmpi  hdf5/184-v18-openmpi    intelmpi/impi-4.0.0.013            pgplot/5.2.2-intel.old
 +
hdf5/184-v16-intelmpi  hdf5/184-v18-serial    intelmpi/impi-4.0.0.025
 +
hdf5/184-v16-openmpi  intel/intel-v11.0.081  openmpi/1.3.2-intel-v11.0-ofed.orig
 +
</pre>
 +
  
 
== Other software and libraries ==
 
== Other software and libraries ==
Line 79: Line 99:
 
|-  style='background: #E0E0E0'
 
|-  style='background: #E0E0E0'
 
|Intel Compiler
 
|Intel Compiler
| 11.1  
+
|11.1,update&nbsp;6
 
| includes MKL library
 
| includes MKL library
 
| <tt>icpc,icc,ifort</tt>
 
| <tt>icpc,icc,ifort</tt>

Revision as of 09:34, 3 August 2010

Software Module System

All the software listed on this page is accessed using a modules system. This means that much of the software is not accessible by default but has to be loaded using the module command. The reason is that

  • it allows us to easily keep multiple versions of software for different users on the system;
  • it allows users to easily switch between versions.

The module system works similarly on the GPC and the TCS.

Function Command Comments
List available software packages:
$ module avail
  • If a module is not listed here, it is not supported.
  • The flag "(default)" is never part of the name.
Use particular software:
 $ module load [module-name] 
  • If possible, specify only the short name (the part before the "/").
  • When ambiguous, this loads the default one.
List available versions of a specific software package:
$ module avail [short-module-name]
List currently loaded modules:
$ module list
Get description of a particular module:
$ module help [module-name]
Remove a module from your shell:
$ module unload [module-name]
Remove all modules:
$ module purge
Replace one loaded module with another:
$ module switch [old-module-name] [new-module-name]

Modules that load libraries, define environment variables pointing to the location of library files and include files for use Makefiles. These environment variables follow the naming convention

SCINET_[short-module-name]_{LIB,INC,BASE}

So to compile and link the library, you will have to add -I$SCINET_[short-module-name]_INC and -L$SCINET_[short-module-name]_LIB, respectively, in addition to the usual -l[libname].

Errors in loaded modules can arise for a few reasons, for instance:

  • A module by that name may not exist.
  • Some modules require other modules to have been loaded; it this requirement is not met when you try to load that module, an error message will be printed explaining what module is needed.
  • Some modules cannot be loaded together: an error message will be printed explaining which modules conflict.

It is recommended to load frequently used modules in the file .bashrc in your home directory.


Default and non-default modules

When you load a module with its 'short' name, you will get the default version, which is the most recent (usually), recommended version of that library or piece of software. In general, using the short module name is the way to go. However, you may have code that depends on the intricacies of a non-default version. For that reason, the most common older versions are also available as modules. You can find all available modules using the module avail command.


Deprecated modules

Some older software for which newer versions exist, get deprecated. In contrast to the non-default modules, the deprecated modules are not found by the module avail command. If you have a piece of legacy code that really depends on a deprecated version of a library (and we urge you to check that it does not work with newer versions!), then you can load a deprecated version by module load use.deprecated [deprecated-module-name].

Currently, the following modules are deprecated:

gcc/gcc-4.3.2          hdf5/184-v16-serial     intel/intel-v11.1.046               openmpi/1.3.3-intel-v11.0-ofed
hdf5/183-v16-openmpi   hdf5/184-v18-intelmpi   intelmpi/impi-3.2.1.009             pgplot/5.2.2-gcc.old
hdf5/183-v18-openmpi   hdf5/184-v18-openmpi    intelmpi/impi-4.0.0.013             pgplot/5.2.2-intel.old
hdf5/184-v16-intelmpi  hdf5/184-v18-serial     intelmpi/impi-4.0.0.025
hdf5/184-v16-openmpi   intel/intel-v11.0.081   openmpi/1.3.2-intel-v11.0-ofed.orig


Other software and libraries

If you want to use a piece of software or a library that is not on the list, you can in principle install it yourself in you /home directory. Note however that building libraries and software from source often uses a lot of files. To avoid running out of disk space, building software is therefore best done from the /scratch, from which you can copy/install only the libraries, header files and binaries to your /home directory.

If you suspect that a particular piece of software or a library would be of use to other users of SciNet as well, contact us, and we will consider adding it to the system.

GPC Software

Software Version Comments Command/Library Module Name
Intel Compiler 11.1,update 6 includes MKL library icpc,icc,ifort intel
GCC Compiler 4.4.0 gcc,g++,gfortran gcc
IntelMPI 3.2.2 mpicc,mpiCC,mpif77,mpif90 intelmpi
OpenMPI 1.4.1 mpicc,mpiCC,mpif77,mpif90 openmpi
Emacs 23.1 New version of popular text editor emacs emacs
xemacs 21.4.22 xemacs editor xemacs xemacs
Git 1.6.3 Revision control system git,gitk git
Valgrind 3.4.1 Memory checking utility valgrind,cachegrind valgrind
grace 5.22.1 Plotting utility xmgrace graphics
Gnuplot 4.2.6 Plotting utility gnuplot graphics
VMD 1.8.6 Visualization and analysis utility vmd vmd
ferret 6.4 Plotting utility ferret ferret
ncl/ncarg 5.1.1 NCARG graphics and ncl utilities ncl ncl
ROOT 5.26.00 ROOT Analysis Framework from CERN root ROOT
ParaView 3.8.0 Scientific visualization, server only pvserver,pvbatch,pvpython visualization
NetCDF 4.0.1 Scientific data storage and retrieval ncdump,ncgen,libnetcdf netcdf
parallel netCDF 1.1.1 Scientific data storage and retrieval using MPI-IO libpnetcdf.a parallel-netcdf
ncview 1.93g Visualization for NetCDF files ncview graphics/ncview
NCO 3.9.9 NCO utilities to manipulate netCDF files ncap, ncap2, ncatted, etc. nco
udunits 2.1.11 unit conversion utilities libudunits2 udunits
HDF4 4.2r4 Scientific data storage and retrieval h4fc,hdiff,...,libdf,libsz hdf4
HDF5 1.8.4-v18 Scientific data storage and retrieval, parallel I/O h5ls, h5diff, ..., libhdf5 hdf5
GAMESS (US) January 12, 2009 R3 General Atomic and Molecular Electronic Structure System rungms gamess
BLAST 2.2.23+ Basic Local Alignment Search Tool blastn,blastp,blastx,psiblast,tblastn... blast
AMBER 10 Amber 10 + Amber Tools 1.3 Amber Molecular Dynamics Package sander, sander.MPI amber10
GDAL 1.7.1 Geospatial Data Abstraction Library gdal_contour,gdal_rasterize,gdal_grid, libgdal gdal
PETSc 3.0.0 Portable, Extensible Toolkit for Scientific Computation (PETSc) libpetsc, etc.. petsc
MEEP 1.1.1 MIT Electromagnetic Equation Propagation meep, meep-mpi meep/1.1.1-serial meep/1.1.1-intelmpi meep/1.1.1-openmpi
Matlab/IDL/Gaussian/Commercial software Little to none. See the FAQ
gsl 1.13 GNU Scientific Library libgsl, libgslcblas gsl
guile + ctl 1.8.7 + 3.1 guile + libctl scheme interpreter libguile, libctl guile
fftw 3.2.2 fast Fourier transform library

Be careful in combining fftw3 and MKL: you need to link fftw3 first, with -L$SCINET_FFTW_LIB -lfftw3, then link MKL

libfftw3 fftw
extras Full set of X11 libraries and others not installed on compute nodes bc, dmidecode, gv, iostat, lsof, tkdiff, zip, libXaw,...,libjpeg extras

TCS Software

Software Version Comments Command/Library Module Name
antlr 2.7.7 ANother Tool for Language Recognition antlr, antlr-config
libantlr, antlr.jar, antlr.py
antlr
gsl 1.13 GNU Scientific Library libgsl, libgslcblas gsl
HDF4 4.2.5 Scientific data storage and retrieval h4fc, hdiff, ..., libdf, libsz hdf4
mpe 2 1.0.6 Performance Visualization for Parallel Programs libmpe mpe
NetCDF + ncview 4.0.1 Scientific data storage and retrieval ncdump, ncgen, libnetcdf, ncview netcdf
NCL 5.1.1 NCAR Command Language ncl, libncl, ... ncl
NCO 3.9.6 NCO utilities to manipulate netCDF files ncap, ncap2, ncatted, etc. nco
parallel netCDF 1.1.1 Scientific data storage and retrieval using MPI-IO libpnetcdf.a parallel-netcdf
scalasca 1.2 SCalable performance Analysis of LArge SCale Applications scalasca, ... scalasca
upc 1.2 Unified Parallel C xlupc upc
extras Adds paths to a fuller set of libraries to your user environment
compile with -I$SCINET_EXTRAS_INC
link with -L$SCINET_EXTRAS_LIB
libfftw, libfftw_mpi, libfftw3, libhdf5, liblapack, ... extras