LAM/MPI logo

LAM FAQ: LAM versions

  |   Home   |   Download   |   Documentation   |   FAQ   |   all just the FAQ
Table of contents:
  1. Can I mix different versions of LAM?
  2. What does crtcp, gm, ib, tcp, sysv, and usysv mean?
  3. I found an old copy of LAM 6.0/6.1/6.2.x/6.3.x somewhere on the net. Should I use it?

[ Return to FAQ ]

1. Can I mix different versions of LAM?


LAM/MPI is only guaranteed to be source-code compatible only.

The LAM Team does not guarantee binary compatibility between any two versions of LAM/MPI. Indeed, we can pretty much guarantee that binary compatibility between multiple versions of LAM/MPI will not work.

The following are examples of mixing multiple versions of LAM/MPI, and will almost certainly not work:

  • Attempting to lamboot multiple versions of LAM/MPI
  • Running an MPI program compiled against one version of LAM/MPI in a the run-time of another version of LAM/MPI

In general, when upgrading to a new version of LAM/MPI, you must recompile all MPI programs with the new version of LAM/MPI.

[ Top of page | Return to FAQ ]

2. What does crtcp, gm, ib, tcp, sysv, and usysv mean?

LAM provides several message transport layers which implement the request progression interface (RPI). They are:

  • crtcp
    The crtcp transport is exactly the same as the tcp transport except that it can be checkpointed and restarted.
  • gm
    The gm transport uses the Myrinet GM interface for interprocess communication.
  • ib
    The ib transport uses the Infiniband (Mellanox VAPI) interface for interprocess communication.
  • tcp
    The tcp transport uses TCP sockets for all interprocess communication.
  • usysv
    The usysv transport is multi-protocol. Processes on the same node communicate via SYSV shared memory and processes on different nodes communicate via TCP sockets. It uses spin-locks for shared memory synchronization as well as a SYSV semaphore or pthread mutex for synchronizing access to a per node global shared memory pool.
    The spin-locks require that the architecture has strongly ordered writes and this transport is only supported on such platforms. It should be relatively easy to modify this transport to work on systems with weakly ordered writes by adding memory barriers in appropriate places.
  • sysv
    The sysv transport is the same as the usysv transport except that SYSV semaphores are used for message synchronization rather than spin-locks. On some uniprocessor systems (e.g. Linux) the blocking nature of semaphores can lead to better performance than when using spin-locks.
    The usysv transport should give the best performance on SMPs.

[ Top of page | Return to FAQ ]

3. I found an old copy of LAM 6.0/6.1/6.2.x/6.3.x somewhere on the net. Should I use it?


Any LAM versions prior to the current version has known problems and issues that are fixed in later releases. If you have some unexplained problems with LAM and are using an old version, you are highly encouraged to upgrade to a later version to see if this solves your problem(s).

Because later versions of LAM have fixed problems from old versions, the LAM Team has decided to not make these old versions available to the public anymore. However, some sites on the internet undoubtedly have LAM 6.0/6.1/6.2 still available. If you find such a site, please notify the site administrator to update their local mirror to a later version, or have them contact the LAM Team directly.

[ Top of page | Return to FAQ ]