HPC/Carbon Cluster - Development tools: Difference between revisions

From CNM Wiki
< HPC
Jump to navigation Jump to search
mNo edit summary
 
(15 intermediate revisions by the same user not shown)
Line 1: Line 1:
__TOC__
__TOC__


== Compilers and development tools ==
This is an overview of the compilers and MPI libraries available on Carbon.
Each package name leads to its documentation.


=== [http://www.gnu.org/doc/ GNU] ===
; See also: [[HPC/Software/Modules#Intel development tools | Module catalog]].
 
== Compilers ==
 
=== GNU family ===
* [http://gcc.gnu.org/onlinedocs/ GCC]
* [http://gcc.gnu.org/onlinedocs/ GCC]
* [http://www.gnu.org/software/gdb/documentation/ GDB]
* [http://www.gnu.org/software/gdb/documentation/ GDB]
Line 9: Line 14:
* [http://www.gnu.org/manual/manual.html … other manuals]
* [http://www.gnu.org/manual/manual.html … other manuals]


=== [http://www.intel.com/support/performancetools/ Intel] ===
=== [http://software.intel.com/en-us/articles/intel-sdp-products/ Intel Software Development Products] ===
We have supported versions of the following commercial tools, currently installed under <code>/opt/intel</code>:
As of 2011, we have the following tools under support within the [http://software.intel.com/en-us/articles/intel-composer-xe/ ''Intel® Composer XE 2011 for Linux''] bundle.
* [http://www.intel.com/support/performancetools/fortran/linux/ Fortran]
** [http://www.intel.com/cd/software/products/asmo-na/eng/346152.htm Manual for 10.1]
** <code>/opt/intel/{fc,fce}/''version''</code>
* [http://www.intel.com/support/performancetools/c/index.htm C++]
** [http://www.intel.com/cd/software/products/asmo-na/eng/346158.htm Manual for 10.1]
** <code>/opt/intel/{cc,cce}/''version''</code>
* [http://www.intel.com/support/performancetools/libraries/mkl/index.htm Intel Math Kernel Library (MKL)], includes Cluster Edition
** <code>/opt/intel/mkl/''version''</code>
* [http://www.intel.com/support/performancetools/vtune/index1.htm VTune analyzer]
* Intel Debugger
** <code>/opt/intel/{idb,idbe}/''version''</code>
To access the documentation pages, use '''firefox''' on a login node:
* <code>/opt/intel/fce/''version''/doc/Doc_Index.htm</code>
* <code>/opt/intel/cce/''version''/doc/Doc_Index.htm</code>
* <code>/opt/intel/mkl/''version''/doc/Doc_index.htm</code>


==== Note on binary architectures ====
* [http://software.intel.com/en-us/articles/intel-c-compiler-professional-edition-for-linux-documentation/ Intel C/C++]
* [http://software.intel.com/en-us/articles/intel-fortran-compiler-professional-edition-for-linux-documentation/ Intel Fortran]
* [http://software.intel.com/en-us/articles/intel-math-kernel-library-documentation/ Math Kernel Library] -- see also [[HPC/Software/Modules/mkl]]
* [http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-documentation/ Integrated Performance Primitives Documentation (IPP)]
* [http://software.intel.com/en-us/articles/intel-threading-building-blocks-documentation/ Threading Building Blocks Documentation (TBB)]
* [http://software.intel.com/en-us/articles/intel-c-compiler-professional-edition-for-linux-documentation/ Debugger (idb)]


CPU architecture labels used by Intel and others can be confusing and have changed over time.
Documentation is installed locally mainly under:
Here's a summary of the labels and directory names commonly used:
$ICC_HOME/Documentation
; '''32, ia32, x86''': legacy 32-bit x86 generations up to ''Pentium 4'' and ''[http://en.wikipedia.org/wiki/Intel_Core Intel Core]''
<pre>
; '''em64t''', '''Intel-64''', '''x86_64''', '''AMD-64''': 64-bit generations of the ''[http://en.wikipedia.org/wiki/Intel_Xeon Xeon]'' branded CPUs, and the ''[http://en.wikipedia.org/wiki/Intel_Core_2 Core 2]'' generation, mostly compatible with AMD's ''[http://en.wikipedia.org/wiki/Opteron Opteron]''
$ ls -F $ICC_HOME/Documentation/en_US
; '''64, ia64''', '''Itanium''': ''[http://en.wikipedia.org/wiki/Itanium Itanium]'' – limited ia32 support, but none for x86_64; ''not used here.''
Release_NotesC.pdf  compiler_c/          documentation_f.htm    getting_started_f.pdf  lgpltext
Release_NotesF.pdf  compiler_f/         flicense              idb/                   mkl/
clicense            documentation_c.htm  getting_started_c.pdf  ipp/                   tbb/
</pre>


The cce, fce, and idbe directories above provide the 64-bit em64t versions appropriate for the Xeon processors, with ia32 versions being available under cc, fc, idb  to compile and run legacy applications.  By default, the 64-bit versions are activated in the user's environment (<code>$PATH</code> and others).  This is done automatically through <code>/etc/profile.d/{iccvars,ifortvars,mklvarsem64t}.{sh,csh}</code>.
No longer maintained on Carbon:
 
* [http://www.intel.com/support/performancetools/vtune/index1.htm VTune analyzer]
In the future, we will leverage the ''[http://modules.sourceforge.net/ environment-modules]'' package for version and architecture selection.
 
==Libraries==
 
=== [http://www.intel.com/support/performancetools/libraries/mkl/index.htm Intel Math Kernel Library (MKL)] ===
 
 
 
==== User Notes ====
 
* [http://www.intel.com/software/products/mkl/docs/linux/WebHelp/userguide.htm User's Guide] – consult Sec. 5 to resolve linker issues, and 32bit vs. 64bit programming
* [http://www.intel.com/software/products/mkl/docs/WebHelp/mklrefman.htm Reference Manual]
* since v10 includes formerly separate Cluster MKL (providing ScaLapack et al.)
* provides BLAS, Lapack, ScaLapack, FFTs (including an [http://www.intel.com/software/products/mkl/docs/fftw3xmkl_notes.htm FFTW interface])
* [http://support.intel.com/support/performancetools/libraries/mkl/linux/sb/CS-028423.htm Detailed linking instructions]; [http://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-for-linux-linking-applications-with-intel-mkl-version-100/ alternate link]
* Link example:
  # Sequential:
    -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread
 
  # OpenMP multi-threaded:
    -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread
 
* The FFTW interface of the MKL can be linked by ''prefixing'' the above options with one of:
-lfftw2xc_intel
-lfftw2xf_intel
-lfftw3xc_intel
-lfftw3xf_intel
Choose the appropriate version between bindings for FFTW v2 vs. v3 and C vs. Fortran.
*  Avoid specifying absolute library paths in your Makefile unless you wish to select a specific version.  The user environment is normally correctly set up.  To force the library version current at the time of writing, add as first flag to the linker options:
<code>-L$MKLROOT/lib/em64t</code>. The variable <code>$MKLROOT</code>is automatically provided.
* see [[HPC/Carbon_Cluster_-_Getting_started#Example_job_file]] for controlling OpenMP execution.
 
=== [http://www.vtk.org/ VTK] ===
* [https://visualization.hpc.mil/wiki/VTK Intro]
* [https://visualization.hpc.mil/wiki/Getting_Started_with_VTK VTK install notes]
 
=== [http://www.mcs.anl.gov/petsc PETSc] ===
* TODO: Portable, Extensible Toolkit for Scientific Computation


==MPI==
==MPI==


===[http://www.open-mpi.org/ OpenMPI]===
=== [http://www.open-mpi.org/ OpenMPI] ===
This is the primary and recommended MPI version.  It supports Ethernet and Infiniband interconnect.
This is the primary and recommended MPI version.  It supports Ethernet and InfiniBand interconnect, with InfiniBand set as default by means of an [http://www.open-mpi.org/faq/?category=openfabrics#ib-btl <code>OMPI_MCA_…</code>] environment variable.
* See also: [http://www.open-mpi.org/faq FAQ]
* [http://www.open-mpi.org/doc/ OpenMPI Documentation]
 
* [http://www.open-mpi.org/faq FAQ]
===[http://www-unix.mcs.anl.gov/mpi/mpich1/ MPICH]/[http://www.mcs.anl.gov/research/projects/mpich2/ MPIC2]===
 
TBD
 
===[http://www.intel.com/cd/software/products/asmo-na/eng/308295.htm#support Intel MPI]===
 
* [http://www.intel.com/cd/software/products/asmo-na/eng/368005.htm Documentation]
 
==Resource Management==


* [http://www.clusterresources.com/pages/products/moab-cluster-suite.php MOAB cluster suite]
=== Intel MPI ===
** [http://www.clusterresources.com/pages/resources/documentation.php Documentation overview]
* See [[HPC/Software/Modules/impi]]
** Torque
** Gold allocation manager


(description of overlap/differences)
===[http://www-unix.mcs.anl.gov/mpi/mpich1/ MPICH]/[http://www.mcs.anl.gov/research/projects/mpich2/ MPICH2]===
* Not installed explicitly, but Intel-MPI is based on MPICH2 and provides an MPICH2 runtime environment for precompiled binaries.


[[Category:HPC|Development]]
[[Category:HPC|Development]]

Latest revision as of 22:22, June 3, 2011

This is an overview of the compilers and MPI libraries available on Carbon. Each package name leads to its documentation.

See also
Module catalog.

Compilers

GNU family

Intel Software Development Products

As of 2011, we have the following tools under support within the Intel® Composer XE 2011 for Linux bundle.

Documentation is installed locally mainly under:

$ICC_HOME/Documentation
$ ls -F $ICC_HOME/Documentation/en_US
Release_NotesC.pdf  compiler_c/          documentation_f.htm    getting_started_f.pdf  lgpltext
Release_NotesF.pdf  compiler_f/          flicense               idb/                   mkl/
clicense            documentation_c.htm  getting_started_c.pdf  ipp/                   tbb/

No longer maintained on Carbon:

MPI

OpenMPI

This is the primary and recommended MPI version. It supports Ethernet and InfiniBand interconnect, with InfiniBand set as default by means of an OMPI_MCA_… environment variable.

Intel MPI

MPICH/MPICH2

  • Not installed explicitly, but Intel-MPI is based on MPICH2 and provides an MPICH2 runtime environment for precompiled binaries.