Go to the first, previous, next, last section, table of contents.


APIs

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.