Clemson Home  >  CCIT HomeSkip NavigationA-Z Index    Calendar    CU Safety    Map    Webcams    Phonebook    

Finding software and documentation

These web pages are intended as a starting guide for using palmetto. Each person will have additional interests or specific needs beyond the basics (e.g. special compiler options, certain application software) and to that end we provide some direction on how to find the software available to you and the documentation on your specific or advanced needs.

We can divide material into several areas:

Man pages
A great deal of documentation is available online via "man pages". Man pages are, as the name says, accessed through the Unix man command. Using the ls command as an example, you can get information about listing your files with

man ls

If you aren't sure of the item name you seek, you can use the keyword search such as

man -k fortran

to find information on fortran compilers, run time libraries, and so forth.

The Unix man command is actually a documentation formatting tool. The source documentation is in various locations across the file system. A Linux "environment variable" called $MANPATH is a default directory path that man searches to find documentation. Documentation for Linux commands and other CentOS applications and tools are in the default $MANPATH. (Type in echo $MANPATH to see the path.) Other paths are automatically loaded when you access certain compilers or software via the module package. (Reference to use of module will be made throughout these web pages as we document the use of particular software items.) In a few cases you may need to add a section parameter instead of modifying the path, as in

man 7 pbs_resources_linux.

Linux commands

The most commonly used Linux commands include

  • ls - list files
  • cat - list file contents
  • more - page file contents
  • rm - remove/delete files
  • mkdir - make a new directory
  • rmdir - remove an existing directory
  • find - find files in a directory hierarchy
  • locate - find files by name
  • which - locate a file in user's path
  • whereis - locate program by name

See their associated man pages for a complete description and information on tailoring their use.

Text editors

You will need a text editor to build PBS job submission scripts, modify your program code and input data, and generally view and change any text files you may use. Several well known text editors are available on user.

  • vi - the "visual" editor. vi is a screen-oriented text editor. Two versions of interest are vim and gvim. vim is a "Much improved" version of vi. gvim is a GUI version of vim. For more information see man 1p vi and man vim.
  • emacs - GNU Project Emacs. emacs, whose name comes from its early purpose as "Editor MACroS for the TECO editor", is a free, open source, and extensible editor. A favorite of programmers and system administrators, emacs is not a WYSIWYG (What You See Is What You Get) editor. See man emacs for more information.
  • nano - "Nano's ANOther" editor. nano is a simple command line editor. It is an enhanced version of the pico editor. For more information, see man nano.

A Google search shows that many online tutorials are available for these editors as well.

Compilers

A number of Fortran, C, and C++ compilers are available for your use. Sources include the open source GNU compiler set as well as the high performance Intel compilers.

C Compilers

Name Source Documentation
c99 Standard C man c99
cc, gcc GNU C, C++ man gcc
The GNU Compiler Collection
GCC Wiki
icc Intel® C man icc
Intel® Compilers for Linux
icpc Intel® C++ man icpc
Intel® C++ Compiler Documentation
Intel® Compilers for Linux
mpicc MPI C man mpicc

 

Fortran Compilers

Name Source Documentation
fort77 Standard Fortran77 man fort77
g77 GNU Fortran77 man g77
The GNU Compiler Collection
gfortran GNU Fortran95 man gfortran
The GNU Compiler Collection
GFortran - GCC Wiki
ifort Intel® Fortran man ifort
Intel® Fortran Compiler Documentation
Intel® Compilers for Linux
mpif77 MPI Fortran77 man mpif77
mpif90 MPI Fortran90 man mpif90


Several versions of the GNU and Intel compilers are available to you. To see your choices, enter

module avail

--------------------------- /opt/Modules/versions ---------------------------
3.2.6

---------------------- /opt/Modules/3.2.6/modulefiles -----------------------
dot                gromacs/3.3.3      module-cvs         netcdf/4.0
fasta/35.4.2       gsl/1.10           module-info        null
fftw/2.1.5         hpl/1.0a           modules            openmpi/1.2.5
fftw/3.1.2         intel/10.0         mpiblast/1.4.0     openmpi/1.2.5-eth
fftw/3.2alpha3     intel/10.1         mpich/1.2.7        openmpi/1.2.7
fftw-mpi/2.1.5     intel/9.1          mpich/1.2.7-eth    pari/2.3.3
fluent/6.3.26      iprscan/4.3.1      mpich/1.2.7..7     paup/4b10
gaussian/g03       ls-dyna/971.R3.2.1 mpich2/1.0.6       perfsuite/0.6.2a6
gcc/3.4            matlab             mpich2/1.0.7       petsc/2.3.3-p8
gcc/4.1            mcnp5/1.20         mpich2/1.0.7-eth   pyMPI/2.5b0
gcc/4.3.2          mira/2.8.3         mpich2/1.0.7..2    pyMPI/2.5b0-eth
goto/1.25          mkl/10.0           namd/2.6           use.own
gromacs/3.3.1      mkl/8.1            ncbi/2.2.18

We need to let the operating system know the software that we want to run, which versions of that software, the location of the software, and so forth. Similar to the $MANPATH environment variable, the operating system searches for application and libraries that we use from a list in the $PATH and $LIBRARY environment variables. The defaults for these variables contain enough information to allow us to use the usual bash commands. The module command will supply the information about additional software we want to use.

So, to access the Intel version 10.1 compilers and their man pages for example, simply add the line

module add intel/10.1

to your .bashrc file (in your root directory.) Adding it to your .bashrc file ensures that access to the Intel compiler is given to the jobs you have running across palmetto nodes. Likewise, when using the AMD processors, be sure to include version 4.3.2 of the GNU Compiler Collection, as in

module add gcc/4.3.2

Application software and libraries

CITI provides various third party application software and libraries for your use. By entering

module avail

you can get an idea of what is available along with the current version numbers.

  • Software
    R R-mpi abaqus dot
    fasta fftw fftw-mpi fluent
    gaussian gcc gems goto
    gromacs gsl hpl intel
    iprscan libctl ls-dyna matlab
    mcnp5 meep mira mkl
    module-cvs module-info modules mpb
    mpiblast mpich mpich2 namd
    ncbi netcdf null openmpi
    pari paup perfsuite petsc
    pgi pgi32 pgi64 pvfs
    pyMPI totalview use.own
  • Application descriptions
    • MATLAB® and companion toolboxes provide engineers, scientists, mathematicians, and educators with an environment for technical computing applications. See the MATLAB documentation pages for more information.
    • GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles. Online man pages are available for each routine. A reference manual and tutorials can be found at GROMACs: Fast, Free, Flexible MD - Tutorial
    • PETSc, pronounced PET-see (the S is silent), is a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. See the PETSc Home Page for more information.
    • CHARM is a well know chemistry package from Princeton University. CHARM is available to those who have licensed it. Please contact us if you need more information about CHARM.
  • Mathematical library descriptions

    The Intel Math Kernel Library (MKL) offers highly optimized, extensively threaded math routines for scientific, engineering, and financial applications that require maximum performance. MKL includes

    • Basic Linear Algebra Subprograms (BLAS)
    • Linear Algebra Package (LAPACK)
    • Scalable LAPACK (ScaLAPACK)
    • Vector Statistical Library
    • Vector Math Library
    • Fast Fourier Transforms

    See the Intel Math Kernel Library - Documentation web pages for documentation links.

  • MPI library descriptions

    The Message Passing Interface (MPI) is a standardized set of procedures for communicating information and data between computers. It is commonly used to parallelize programs across a computing cluster. Two implementations of MPI are available to you: MPICH and OpenMPI.

    MPICH is available in two versions and two distributions. The versions are MPICH and MPICH2. The distributions are GNU and Intel. The compiler, your application, or the third party application you use will dictate which version of MPICH to use. Once you know that, you will add it via the module command

    module add <distribution> <version>

    (Remember to add this to the .bashrc file in your home directory.)

    OpenMPI, as the name implies, is an open source collaboration from across the High Performance Computing community. You will add it via the module command

    module add openmpi

    Documentation on MPI, MPICH, and OpenMPI can be found at

    Version Web site links
    MPI Message Passing Interface
    MPICH1 MPICH Home Page
    MPICH2 MPI: High-performance and Widely Portable MPI
    OpenMPI Open MPI: Open Source High Performance Computing


Maintained by CITI web services                    Copyright ©2008 Clemson University, Clemson, S.C. 29634, (864) 656-331