Space University of Florida - The Foundation of the Gator Nation
University of Florida College of Liberal Arts and Sciences
Space
Quantum Theory Project QTP Home page
Slater Lab

Compilers and libraries guide

1. Online documentation for software on Intel LINUX systems

MPI libraries
The Linux clusters have several MPI implementations available.
  • LAM 7.0.4 compiled with gcc has been installed in /usr/bin and /usr/lib.
  • LAM 7.0.4 compiled with Intel 8.0 compilers has been installed in /share/local/bin and /share/local/lib.
  • OpenMPI 1.1 compiled with gcc has been installed in /share/local/lib/ompi/.
  • Intel MPI 2.0 has been installed in /opt/intel/ict/2.0/mpi/2.0; see the paragraph "Intel cluster Toolkit" below for more details.
  • Intel MPI 2.0.1 has been installed in /opt/intel/ict/2.0.1/mpi/2.0.1; see the paragraph "Intel cluster Toolkit" below for more details.
You must set the correct -L option when you compile and the correct LD_LIBRARY_PATH when you run to use these libraries.

Intel Compilers and Intel Cluster Toolkit
QTP and UF HPCC share a 5 developer floating license for compilers and a 20 developer license for the cluster tools. The compilers made by Intel produce optimal code for IA32 and EM64T processors from Intel, using the Intel architecture extension of the IA32 architecture. The code will run on AMD processors, but not necessarily in the most optimal way.

Documentation for the compilers and the debugger can be found in PDF format on crunch in /usr/local/www/intel_cc, etc. or in HTML format with the links below.

There is a set of Intel libraries as well: The Math Kernel Libraries MKL 8.0.1 provide optimized version of BLAS and LAPACK. These libraries are part of the Intel Cluster Toolkit 2.0. In addition to the MKL 8.0.1, the toolkit includes the Intel Trace Analyser 6.0, the Intel Trace Collector 6.0, and the Intel MPI 2.0 libraries.

Portland Group Inc. compilers
There is a node-locked license on linx64 for the Portland Group compilers version 6.0. Prtland Group compilers are optimized for both EM64T and AMD64 architecture extensions of the common IA32 architecture.

PathScale Inc. compilers
QTP and UF HPCC share a 5 developer floating license for the Pathscale Inc EKO system of compilers version 2.3 for Intel and AMD 64 bit processors. PathScale compilers produce optimal code for both AMD64 and EM64T architecture extensions.
IMPORTANT: Setting the correct environment variables
The older version 8.0 of the Intel compilers is still available, as well as the older version 6.1 of the MKL libraries. The use the correct compiler you must set the correct environment variables. The variables are:
PATH, LD_LIBRARY_PATH, MANPATH, INTEL_LICENSE_FILE
The a set of lines in your .bashrc or .kshrc file to set the ones for the compiler you want to use. If you set them for more than one compiler in one session, you may see problems during linking or execution of your programs.
You cannot (easily) switch from one compiler to another, because you must clean up the old variables before setting the new values in them. It is recommended that you terminate the shell and start a new shell if you need to use a different compiler.
To execute a program it is usually possible to set the variables so that all compiler paths are defined, but not always. To make management of the environment variables easier, the script /usr/local/lib/compilers is provided. By default it is included in /usr/local/lib/global.shrc as . /usr/local/lib/compilers intel80 mkl61_32 pgi60. It is designed to run only once, because once the environment variables have been changed there is no easy way to undo the changes. To prevent the default settings from being applied in your environment, put the following lines before the line . /usr/local/lib/global.shrc in your .kshrc or .bashrc:
if [ -f /usr/local/lib/compilers.sh ]; then
   . /usr/local/lib/compilers.sh
fi
. /usr/local/lib/global.shrc
This allows you to set the variables later according to the options below with the syntax
    . /usr/local/lib/compilers opt1 opt2 opt3 ...
You can put the options on the line in your .kshrc or .bashrc, if you wish, but then you cannot change them by sourcing /usr/local/lib/compilers again later. As follows:
if [ -f /usr/local/lib/compilers.sh ]; then
   . /usr/local/lib/compilers.sh
fi
# Please, do not remove the following line!
. /usr/local/lib/global.shrc
if [ -f /usr/local/lib/compilers.sh ]; then
   . /usr/local/lib/compilers.sh intel90 mkl801_32 mpi20
fi

Current versions
Intel Fortran, C/C++, debugger 9.1
Use option intel91 or
if [ -f /opt/intel/fc/9.1.039/bin/ifortvars.sh ]
then
    . /opt/intel/fc/9.1.039/bin/ifortvars.sh
fi
if [ -f /opt/intel/fc/9.1.041/bin/ifortvars.sh ]
then
    . /opt/intel/fc/9.1.041/bin/ifortvars.sh
fi
if [ -f /opt/intel/cc/9.1.044/bin/iccvars.sh ]
then
    . /opt/intel/cc/9.1.044/bin/iccvars.sh
fi
if [ -f /opt/intel/idb/9.1.044/bin/idbvars.sh ]
then
    . /opt/intel/idb/9.1.044/bin/idbvars.sh
fi
if [ -f /opt/intel/cc/9.1.042/bin/iccvars.sh ]
then
    . /opt/intel/cc/9.1.042/bin/iccvars.sh
fi
if [ -f /opt/intel/idb/9.1.042/bin/idbvars.sh ]
then
    . /opt/intel/idb/9.1.042/bin/idbvars.sh
fi
    
For EM64T code, use option intel91_emt64t or
if [ -f /opt/intel/fce/9.1.039/bin/ifortvars.sh ]
then
    . /opt/intel/fce/9.1.039/bin/ifortvars.sh
fi
if [ -f /opt/intel/cce/9.1.044/bin/iccvars.sh ]
then
    . /opt/intel/cce/9.1.044/bin/iccvars.sh
fi
if [ -f /opt/intel/idbe/9.1.044/bin/idbvars.sh ]
then
    . /opt/intel/idbe/9.1.044/bin/idbvars.sh
fi
    
Intel Math Kernel Libraries 8.1
There are different libraries for 32-bit, standard 64-bit and EM64T 64-bit applications. For 32-bit application, use option mkl81_32 or
if [ -f /opt/intel/ict/2.0.1/cmkl/8.1/tools/environment/mklvars32.sh ]
then
    . /opt/intel/ict/2.0.1/cmkl/8.1/tools/environment/mklvars32.sh
fi
    
For 64-bit applications that do not use the extended EM64T instructions, which is required on AMD processors, use option mkl81_64 or
if [ -f /opt/intel/ict/2.0.1/cmkl/8.1/tools/environment/mklvars64.sh ]
then
    . /opt/intel/ict/2.0.1/cmkl/8.1/tools/environment/mklvars64.sh
fi
    
For 64-bit applications that use EM64T instructions to run on Intel Xeon EM64T processors only (such as haku nodes, use option mkl81_em64t or
if [ -f /opt/intel/ict/2.0.1/cmkl/8.1/tools/environment/mklvarsem64t.sh ]
then
    . /opt/intel/ict/2.0.1/cmkl/8.1/tools/environment/mklvarsem64t.sh
fi
    
Intel MPI Libraries 2.0.1
Use option mpi201 or
if [ -f /opt/intel/ict/2.0.1/mpi/2.0.1/bin/mpivars.sh ]
then
    . /opt/intel/ict/2.0.1/mpi/2.0.1/bin/mpivars.sh
fi
    
Intel Trace Collector/Analyzer 6.0.1
Use option itc601 or
if [ -f /opt/intel/ict/2.0.1/itc/6.0.1/sourceme.sh ]
then
    PATH=/opt/intel/ict/2.0.1/ita/6.0.1/bin:$PATH; export PATH
    . /opt/intel/ict/2.0.1/itc/6.0.1/sourceme.sh
fi
    
Portland Group Fortran, C/C++ 6.0
Use option pgi60 or
if [ -f /opt/pgi/license.dat ]
then
   PATH=/opt/pgi/linx86-64/6.0/bin:$PATH
   MANPATH=/opt/pgi/linux86-64/6.0/man:$MANPATH
   PGI=/opt/pgi
   export PGI
   LM_LICENSE_FILE=$PGI/license.dat
   export LM_LICENSE_FILE
fi
    
PathScale Fortran, C/C++ 2.3
Use option psi23 or
if [ -f /opt/pathscale/license.dat ]
then
   PATH=/opt/pathscale/bin:$PATH
   LD_LIBRARY_PATH=/opt/pathscale/lib/2.3:/opt/pathscale/lib/2.3/32:$PATH
   MANPATH=/opt/pathscale/man:$MANPATH
fi
    
OpenMPI Libraries 1.1
Use option ompi11 or
if [ -f /share/local/lib/ompi/bin/mpivars.sh ]
then
    . /share/local/lib/ompi/bin/mpivars.sh
fi
    
Old versions
Intel Fortran, C/C++, debugger 9.0
Use option intel90 or
if [ -f /opt/intel/fc/9.0/bin/ifortvars.sh ]
then
    . /opt/intel/fc/9.0/bin/ifortvars.sh
fi
if [ -f /opt/intel/cc/9.0/bin/iccvars.sh ]
then
    . /opt/intel/cc/9.0/bin/iccvars.sh
fi
if [ -f /opt/intel/idb/9.0/bin/idbvars.sh ]
then
    . /opt/intel/idb/9.0/bin/idbvars.sh
fi
    
For EM64T code, use option intel90_em64t or
if [ -f /opt/intel/fce/9.0/bin/ifortvars.sh ]
then
    . /opt/intel/fce/9.0/bin/ifortvars.sh
fi
if [ -f /opt/intel/cce/9.0/bin/iccvars.sh ]
then
    . /opt/intel/cce/9.0/bin/iccvars.sh
fi
if [ -f /opt/intel/idbe/9.0/bin/idbvars.sh ]
then
    . /opt/intel/idbe/9.0/bin/idbvars.sh
fi
    
Intel Math Kernel Libraries 8.0.1
There are different libraries for 32-bit, standard 64-bit and EM64T 64-bit applications. For 32-bit application, use option mkl801_32 or
if [ -f /opt/intel/ict/2.0/cmkl/8.0.1/tools/environment/mklvars32.sh ]
then
    . /opt/intel/ict/2.0/cmkl/8.0.1/tools/environment/mklvars32.sh
fi
    
For 64-bit applications that do not use the extended EM64T instructions, which is required on AMD processors, use option mkl801_64 or
if [ -f /opt/intel/ict/2.0/cmkl/8.0.1/tools/environment/mklvars64.sh ]
then
    . /opt/intel/ict/2.0/cmkl/8.0.1/tools/environment/mklvars64.sh
fi
    
For 64-bit applications that use EM64T instructions to run on Intel Xeon EM64T processors only (such as haku nodes, use option mkl801_em64t or
if [ -f /opt/intel/ict/2.0/cmkl/8.0.1/tools/environment/mklvarsem64t.sh ]
then
    . /opt/intel/ict/2.0/cmkl/8.0.1/tools/environment/mklvarsem64t.sh
fi
    
Intel MPI Libraries 2.0
Use option mpi20 or
if [ -f /opt/intel/ict/2.0/mpi/2.0/bin/mpivars.sh ]
then
    . /opt/intel/ict/2.0/mpi/2.0/bin/mpivars.sh
fi
    
Intel Trace Collector/Analyzer 6.0
Use option itc60 or
if [ -f /opt/intel/ict/2.0/itc/6.0/sourceme.sh ]
then
    PATH=/opt/intel/ict/2.0/ita/6.0/bin:$PATH; export PATH
    . /opt/intel/ict/2.0/itc/6.0/sourceme.sh
fi
    
Intel Fortran, C/C++, debugger 8.0
Use option intel80 or
if [ -f /opt/intel_fc_80/bin/ifortvars.sh ]
then
    . /opt/intel_fc_80/bin/ifortvars.sh
fi
if [ -f /opt/intel_cc_80/bin/iccvars.sh ]
then
    . /opt/intel_cc_80/bin/iccvars.sh
fi
if [ -f /opt/intel_idb_80/bin/idbvars.sh ]
then
    . /opt/intel_idb_80/bin/idbvars.sh
fi
    
Intel Math Kernel Libraries 6.1
There are different libraries for 32-bit, standard 64-bit applications. For 32-bit application, use option mkl61_32 or
if [ -f /opt/intel/mkl61/tools/environment/mklvars32.sh ]
then
    . /opt/intel/mkl61/tools/environment/mklvars32.sh
fi
    
For 64-bit application, use option mkl61_64 or
if [ -f /opt/intel/mkl61/tools/environment/mklvars64.sh ]
then
    . /opt/intel/mkl61/tools/environment/mklvars64.sh
fi
    

2. Online documentation for software on the SUN Solaris systems

3. Online documentation for software on the IBM AIX systems

4. Online documentation for software on the all systems


  • LAPACK 3.0 with BLAS for Fortran 77 Compile C programs with header file sunperf.h

    LAPACK 3.0 is included in sunperf on SUN. The library liblapack.a is also available in /usr/local/lib, but you still need to link to sunperf to resolve for BLAS routines:
    Link with -xlic_lib=sunperf.
       # For C and C++ programs, use sunperf.h as include file
       # #include 
       prog: prog.c
               cc -o prog prog.c -xlic_lib=sunperf
    
       prog: prog.cpp
               CC -o prog prog.cpp -xlic_lib=sunperf
    
       prog: prog.f
               f77 -o prog prog.f -xlic_lib=sunperf
    
       prog: prog.f90
               f90 -o prog prog.f90 -xlic_lib=sunperf
    
    
    	      

    On IBM, liblapack.a, liblapackp2.a, liblapackp3.a are available for POWER, POWER2, POWER3 architecture. Youshould link with the correct ESSL library to resolve for BLAS routines:
    Link with -llapack -lessl on POWER;
    with -llapackp2 -lesslp2 on POWER2 and
    with -llapackp3 -lessl on POWER3.

  • LAPACK 3.0 with BLAS Fortran 90 interface
    Modules for using LAPACK from f90 are defined in /usr/local/lib/*.mod and liblapack90.a is provided in /usr/local/lib.

    Compile with -M/usr/local/lib on SUN and
    with -I/usr/local/lib on IBM to find the modules.

    Link with -llapack90 -xlic_lib=sunperf on SUN.
    Link with -llapack90 -llapack -lessl on POWER;
    with -llapack90 -llapackp2 -lesslp2 on POWER2 and
    with -llapack90 -llapackp3 -lessl on POWER3.

    See /usr/local/doc/lapack/lapack90.ps for details.

>> top

Space Space Space
Space
Have a Question? Contact us.
Last Updated 12/15/07
 
University of Florida