SciClone Cluster Project Computational Science Cluster
Home
Introduction
Sponsors
Research
Hardware
Software
User Info
Documentation

Name: LAM/MPI

Version: 6.5.9

Description:

MPI message-passing libraries for distributed and shared memory environments, plus the ROMIO MPI I/O package. Three different versions are available (tcp, sysv, and usysv), corresponding to different mechanisms for local communication within SMP nodes. Installed in both 32-bit (v8plusa, v8plusb) and 64-bit (v9a, v9b) flavors.

Installation Path:

/usr/local/[v8plusa,v8plusb,v9a,v9b]/[generic,ultra3cu]/lam-6.5.9-[tcp,sysv,usysv]

Documentation:

Usage Notes:

LAM 6.5.9 has been superceded by LAM 7.1.2. All LAM applications should migrate to LAM 7.1.2 as soon as practicable.

LAM/MPI 6.5.9 programs on SciClone must be initiated via PBS using the pbslam-6.5 command rather than with mpirun. See the SciClone User's Guide and pbslam-6.5 man page for complete details.

A total of twelve different variants of LAM are installed on SciClone to provide for:

  • 32-bit vs. 64-bit addressing (v8*, v9*)
  • UltraSPARC II vs. UltraSPARC III processors (v*a, v*b)
  • different LAM transport layers (tcp, sysv, usysv)

Which of these is optimum depends on the characteristics of the application and which type(s) of nodes it is running on. Therefore, we've made them all available for users to experiment with. "v8plusa" and "v9a" will run satisfactorily on any node in SciClone, but "v8plusb" and "v9b" should only be used on nodes with UltraSPARC III processors (c5, n2, db1, and s3 node types).

The "v8plusa" and "v9a" versions are built for use with a "generic" UltraSPARC CPU, while the "v8plusb" and "v9b" versions are compiled to take advantage of the "ultra3cu" chip found only on our UltraSPARC III nodes. The choice between "generic" or "ultra3cu" is determined automatically if you use the default .cshrc file described below.

The choice of transport layer is a little trickier. "tcp" uses TCP sockets for all communication, both local and remote, while "sysv" and "usysv" use shared memory to optimize local communication within a node. "usysv" uses a combination of spinlocks and semaphores to coordinate access to shared memory. "sysv" relies only on semaphores. If only one process is spawned on each node, then all three transports should provide similar performance.

Although LAM's shared memory transports can achieve very low message latencies and high bandwidth, some applications actually perform better on multi-cpu nodes (sometimes much better) by using TCP for all communication. The reasons for this are poorly understood at this time.

Environment Variables

For proper operation, the LAMHOME environment variable must be set in the user's ~/.cshrc file to specify the desired variant of LAM. $LAMHOME/bin should be in the user's search path, and $LAMHOME/man should be included in the MANPATH. The file /usr/local/etc/templates/cshrc contains the current recommended environment settings and includes options for specifying which version of LAM to use, and for switching between LAM and other MPI packages.