| Clemson Home > CCIT Home | Skip Navigation | A-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.
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.
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.
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
- Login to post comments
