Authors: Steven Saunders, Lawrence Rauchwerger

Venue: Proceedings of the Ninth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP)
DOI: 10.1145/781498.781534
Link to Publication

Abstract:
ARMI is a communication library that provides a framework for expressing fine-grain parallelism and mapping it to a particular machine using shared-memory and message passing library calls. The library is an advanced implementation of the RMI protocol and handles low-level details such as scheduling incoming communication and aggregating outgoing communication to coarsen parallelism when necessary. These details can be tuned for different platforms to allow user codes to achieve the highest performance possible without manual modification. ARMI is used by STAPL, our generic parallel library, to provide a portable, user transparent communication layer. We present the basic design as well as the mechanisms used in the current Pthreads/OpenMP, MPI implementations and/or a combination thereof. Performance comparisons between ARMI and explicit use of Pthreads or MPI are given on a variety of machines, including an HP V2200, SGI Origin 3800, IBM Regatta-HPC and IBM RS6000 SP cluster.

@article{10.1145/966049.781534, 
 abstract = {ARMI is a communication library that provides a framework for expressing fine-grain parallelism and mapping it to a particular machine using shared-memory and message passing library calls. The library is an advanced implementation of the RMI protocol and handles low-level details such as scheduling incoming communication and aggregating outgoing communication to coarsen parallelism when necessary. These details can be tuned for different platforms to allow user codes to achieve the highest performance possible without manual modification. ARMI is used by STAPL, our generic parallel library, to provide a portable, user transparent communication layer. We present the basic design as well as the mechanisms used in the current Pthreads/OpenMP, MPI implementations and/or a combination thereof. Performance comparisons between ARMI and explicit use of Pthreads or MPI are given on a variety of machines, including an HP V2200, SGI Origin 3800, IBM Regatta-HPC and IBM RS6000 SP cluster.}, 
 address = {New York, NY, USA}, 
 author = {Saunders, Steven and Rauchwerger, Lawrence}, 
 doi = {10.1145/966049.781534}, 
 issn = {0362-1340}, 
 issue_date = {October 2003}, 
 journal = {SIGPLAN Not.}, 
 keywords = {RPC, RMI, Pthreads, run-time system, OpenMP, parallel programming, MPI, communication library}, 
 month = {June}, 
 number = {10}, 
 numpages = {12}, 
 pages = {230–241}, 
 publisher = {Association for Computing Machinery}, 
 title = {ARMI: An Adaptive, Platform Independent Communication Library}, 
 url = {https://doi.org/10.1145/966049.781534}, 
 volume = {38}, 
 year = {2003} 
} 
 
@inproceedings{Saunders-aaapic-2003, 
 address = {New York, NY, USA}, 
 author = {Saunders, Steven and Rauchwerger, Lawrence}, 
 booktitle = {Proceedings of the Ninth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming}, 
 doi = {10.1145/781498.781534}, 
 isbn = {1581135882}, 
 keywords = {MPI, parallel programming, RPC, Pthreads, communication library, OpenMP, run-time system, RMI}, 
 location = {San Diego, California, USA}, 
 numpages = {12}, 
 pages = {230–241}, 
 publisher = {Association for Computing Machinery}, 
 series = {PPoPP \'03}, 
 title = {ARMI: An Adaptive, Platform Independent Communication Library}, 
 url = {https://doi.org/10.1145/781498.781534}, 
 year = {2003} 
}