Aggregate remote memory copy interface
The Aggregate Remote Memory Copy Interface (ARMCI) library is intended 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-address 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.
Optimized implementations of ARMCI are available for the [Myrinet] (GM), Quadrics, Giganet (VIA) and Infiniband using Mellanox verbs API. A port of ARMCI on the Cray XD1 platform has been developed by Cray and is distributed by them. IBM has a port of ARMCI on IBM BG/L machine. ARMCI is available on the following platforms:
- IBM SPs (based on LAPI)
- Cray X1, T3E, SV1, and J90
- Unix workstations and servers: Sun, SGI, HP, IBM, Linux
- Clusters of Unix and Windows NT workstations/servers
- Fujitsu VX/VPP and PRIMEPOWER
- NEC SX-5
- Hitachi SR8000
Source
ARMCI is a free software and can be download from emsl.pnl.giv