Go to the first, previous, next, last section, table of contents.
Currently, HPVM supports these interfaces:
- Fast Messages (FM)
-
FM is a low-level messaging layer with active-message semantics that
provides efficient, yet portable, access to the underlying transport
layer. FM is used to implement higher-level messaging layers and to
give applications more control over communication details. See section Fast Messages.
- Message Passing Interface (MPI)
-
MPI is a high-level messaging layer with send/receive semantics that
contains a large number of functions for pairwise and collective
communication operations. MPI is often used to build portable,
general-purpose parallel applications. See section MPI.
- SHMEM
-
SHMEM is a low-level messaging layer with put/get semantics and a shared
address space programming model. It contains a number of one-sided and
collective data transportation functions. The HPVM SHMEM interface,
which is based on the Cray T3D's, can be used to port applications from
the Cray T3D/T3E and for programs that exhibit irregular communication
patterns. It may also be a useful stepping-stone for porting
cache-coherent shared-memory programs to message-passing. See section SHMEM.
- Global Arrays (GA)
-
Global Arrays is a high-level messaging layer with put/get semantics and
a shared, but NUMA, address space programming model. Because many of
its functions operate on two-dimensional arrays, Global Arrays is
generally used for linear algebra-intensive programs. See section Global Arrays.
- Bulk Synchronous Parallel (BSP)
-
BSP is a high-level messaging layer which eases the implementation of
parallel programs which are characterized by alternating stages of
processing (the bulk stage) followed by synchronization. The synchronization
stages are commonly implemented with collective
communication primitives (e.g., a barrier).
All of the above can be used with either C or Fortran, except FM, which
can be used only with C (or C++).
Go to the first, previous, next, last section, table of contents.