"The purpose of the Aggregate Remote Memory Copy (ARMCI) library is to
provide a general-purpose, efficient, and widely portable remote memory access
(RMA) operations (one-sided communication) optimized for contiguous and
noncontiguous (strided, scatter/gather, I/O vector) data transfers. In
addition, ARMCI includes a set of atomic and mutual exclusion operations. The
development ARMCI is driven by the need to support the global-addres space
communication model in context of distributed regular or irregular distributed
data structures, communication libraries, and compilers. ARMCI is a standalone
system that could be used to support user-level libraries and applications that
use MPI or PVM.
ARMCI exploits native network communication interfaces and system resources
(such as shared memory) to achieve the best possible performance of the remote
memory access/one-sided communication. It exploits high-performance network
protocols on clustered systems. Optimized implementations of ARMCI are
available for the Portals, Myrinet (GM), Quadrics, Infiniband (using OPENIB
and Mellanox verbs API), and Ethernet.
ARMCI is compatible with MPI. However, by design it is impartial to a
selection of the message-passing libraries in the user program. In addition to
MPI, on some platforms ARMCI was also used with PVM and TCGMSG message-passing
libraries.
http://hpc.pnl.gov/armci/index.shtml
https://github.com/jeffhammond/armci-mpi
No comments:
Post a Comment