M-grid: Cluster Maintenance Project | System Programs and Libraries |
Version 1.1 |
2005-09-14 |
OlliS/CSC |
This is a report for the Material Science Grid Maintenance Project concerning the system programs, such as compilers and libraries for the clusters.
The main goal is to suggest, what system software, batch queue system, compilers and libraries are installed on the clusters and what are supported by CSC and recommend the levels of the support.
There is a three level support structure for system software support by CSC:
System Software: Operating System, Batch Queue System, Compilers, and Libraries | CSC Support Level | Installed in the test cluster | |
NPACI Rocks Cluster Distribution (v 3.2.0 or newer) | based on Red Hat Enterprise Linux v 3.0, but differs
in cluster support (http://rocks.npaci.edu/Rocks):
Supports
| supp | yes |
Hardware monitoring | node temperature, fans, hardware parameters and alarms | supp | partly |
Batch Queue System | |||
Sun Grid Engine | Included in Rocks, basic queues and Grid related configuration done by CSC (local modifications to queue configuration are possible and probably needed, but should be discussed with CSC) | supp | yes |
Grid environment | |||
NorduGrid | http://www.nordugrid.org. | supp | no |
Programming Environment | |||
Compilers | |||
Fortran 90/95 | The most important one | supp | yes |
Fortran 77 | Usually included in the Fortran 90/95 compiler | supp | yes |
C/C++ | Fortran and C/C++ compiler should support both 32 and 64 bit programs. | supp | yes |
OpenMP | local | yes (pgi) | |
GNU | Version included with rocks installed "as is". | inst | yes |
PGI Workstation | http://www.pgroup.com This is the initial choice for the common supported compiler package. | supp | yes |
PathScale | http://www.pathscale.com Optimized for AMD64, GNU compiler compatible. | supp | no |
Intel Fortran, C/C++ | http://www.intel.com, ... /software/products Used by one or two groups (?). | local | no |
Absoft Fortran | http://www.absoft.com Used by one group (HU). | local | no |
NAGWare | http://www.nag.com Used by one group (JYU). | local | no |
Message Passing Libraries | |||
MPICH | Compiled by CSC for both GNU and PGI | supp | yes |
LAM | Compiled by CSC for both GNU and PGI. LAM supports quite well also the MPI-2-standard. | supp | yes |
PVM | Older Message Passing library "style". | local | no |
Subroutine Libraries | |||
ACML | AMD Core Math Library, well optimized for AMD processors. | supp | yes |
ATLAS | Automatically Tuned Linear Algebra Software http://math-atlas.sourceforge.net. Alternate choice to ACML, used by many packages In Linux, but ACML better optimized for AMD | inst | yes |
BLAS | Basic Linear Algebra Subprograms http://www.netlib.org/blas. Included in ACML | supp | yes |
LAPACK | ACML supports/contains this | supp | yes |
ScaLAPACK | inst | yes
(no rpm yet) | |
BLACS | free (or open source). Used with ScaLAPACK as communication layer. | inst | yes |
ARPACK | free (or open source). | local | no |
PARPACK | free (or open source) | local | no |
FFTW | free (or open source). | local | no |
NetCDF | free (or open source) | local | no |
GSL | free (or open source) | local | no |
DISLIN | free (or open source) | local | no |
SLATEC | free (or open source) | local | no |
Linda | commercial | local | no |
NAG | commercial | local | no |
IMSL | commercial | local | no |
Programming Environment and Tools | |||
Editors (incl. Emacs) | included in the operating system | inst | yes |
Debuggers | included in the compiler or message passing library distribution | inst | yes |
Profiling Tools | included in the compiler or message passing library distribution | inst | yes |
The GNU compilers are included in all Linux distributions. They are not the most suitable ones for the clusters, however. A version of them are installed with the Rocks distribution, and that version is supported at the start only "as is", medium level 1 (indicated by inst in the table). The versions of GNU compilers in Rocks are not the newest; groups can install locally more recent versions if they are needed. CSC may later consider the need for new GNU compilers too.
One (commercial) compiler package will be supported (full support level 2). By choosing the compiler package carefully, one can drastically affect the time needed for software development. The downside is that these commercial packages can cost quite a bit.
In the M-grid Cluster Administration Meeting (2004-08-13) the Portland Group Compiler package was selected as the initial choice. It was estimated that a license for 5 simultaneous users is enough, at least initially. However, due to problems detected with compiling certain codes with the PGI compiler, only 2 simultaneous users license has been bought first. CSC will bear the costs of these licenses. CSC will also host the licenses on it's license server.
Portland Group (PGI) Compiler package includes all needed compilers: Fortran 90/95, Fortran 77, HPF = High Performance Fortran, C and C++. There are also optimized versions of the LAPACK/BLAS, MPICH, ScaLAPACK libraries and support for message passing LAM/MPI.
PathScale is a new compiler, seemingly based on the GNU compiler and compatible with it. It is partly open source (GPL), partly proprietary (and commercial), and especially geared and optimized towards AMD64-architecture. It seems to produce faster code than the Portland Group and GNU compilers in most cases and is currently the recommended compiler.
Similarly Intel package consists of all needed compilers and libraries. One should also watch closely its future 64-bit features.
Absoft and NAGWare Fortran Compiler will probably be used by one group (each).
Both MPICH and LAM will be installed and supported on full support level 2. If there are some unforeseen difficulties for having them both, the more efficient LAM is the preferred choice. In that case, MPICH will be supported only on medium inst level 1 or even local support level 0, but this scenario is not very probable.
At present, none of the commercial libraries (NAG; IMSL, Linda) will be acquired. They could be very expensive for these kind of clusters, because there are so many processors. And it seems that there is no real need (nor money) for these commercial libraries. Gaussian03 uses Linda library for parallelization in Linux, but it will probably not be acquired. If some groups need these libraries they should obtain licenses and install them locally.
So CSC will support only free (open source) or vendor libraries. CSC will install, maintain and support only the most important libraries, and their parallel versions are usually at lower support level in comparison to the serial ones.
CSC support on the full support level 2 the following libraries: ACML, BLAS, and LAPACK (but related ScaLAPACK and BLACS will be at medium inst level 1; BLACS is required as a communication layer for ScaLAPACK). Atlas, FFTW and ARPACK (and perhaps related PARPACK) will be supported on medium inst level 1, if needed and if the responsible groups for them are found.The other mentioned libraries such as NetCDF, GSL, DISLIN, SLATEC will be initially at local-support-only level 0, but later they can be elevated to the medium inst level 1 ("as is") when needed and as the case may be. This has to be agreed separately.
Some of the scientific applications, which are to be installed, could require specific libraries to be able to run, especially if they are acquired as a binary version. This will be taken into account when reconsidering the support levels for the libraries.
The libraries are made available at least for the primary compiler (at present PGI) and primarily in the 64-bit version. However, libraries for all supported compilers (at present this applies to GNU in addition of PGI) and the 32-bit versions are included in the support as needed and as available (or compilable). The support level of the library is never greater than that of the compiler, and in some cases it could be lower. Especially the 32-bit versions are not efficient on the cluster 64-bit architecture, and hence of lower importance, but sometimes they are required by a special software package.
The default editor will be Emacs, which is standard in all Linux/Unix distributions. Also ed and vi are included. Debuggers, profiling tools and other programming tools are usually included in the compilers or message passing libraries.
Here we probably do not need installations or support separate from the general support already included in the support of the operating system, compilers or libraries.
The task include:
In many cases, the need for support lessens after initial installation. However, one major problem could easily take several several weeks or even months to solve and patch.