What is SMI?
SMI is the Shared Memory Interface - a kind of counterpart to MPI, the Message
Passing Interface. It is an API and also an implementation to use a NUMA class cluster (or
an UMA class system like an SMP server) to run parallel applications which communicate via
ordinary shared memory. We have created a quick overview on
the functionality of SMI.
SMI is not a DSM ("distributed shared memory") or SVM ("shared virtual memory") system
where a common address space is virtually provided. For such a library, you may take a look
at the SVMlib.
Use of SMI
The SMI library is used in a number of projects (most of them are part of the ParaNUMApps project which triggered the devlopment of SMI):
GROMOS96 - biomolecular modelling
CAESAR - acoustic simulation
SCI-MPICH - MPI implementation for message passing via SCI
a flight-scheduler for Lufthansa
SMI is available for Windows NT/2000, Solaris (Sparc/x86) and Linux (x86/Alpha, Sparc untested). It is distributed with
SCI-MPICH, but of course it is usable as a stand-alone library as well.
You'll need at least some kind UMA system (any SMP will do) to make use of SMI. However, SMI was
primarily designed for use on a NUMA system which can be build by clustering a number of nodes
(possibly SMP systems) via SCI.
The SMI library can not be downloaded directly. Because SMI is now a part of MP-MPICH
(used for the SCI communication), you have to download the complete MP-MPICH distribution. The SMI library can be found in mp-mpich/mpid/ch_smi/SMI. The download is done via the download page