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