Home Publications
Professional
Research
LogGOPSim NB Collectives
CG Solver
HPL
Kernels
LibNBC
NBCBench
Performance
MPI Topology
Netgauge
Networks
BTL eth
ORCS
Older Projects
Teaching
BLOG
Me(e)t me?
Miscellaneous
CV
|
LibNBC - Nonblocking MPI Collective Operations
Description
LibNBC is a prototypic implementation of a nonblocking interface for
MPI collective operations. Based on ANSI C and MPI-1, it supports all
MPI-1 collective operations in a nonblocking manner. LibNBC is
distributed under the BSD license.
Download the NBC Library
These versions of the NBC Library are available:
Build the NBC Library 1.0 and Programs using it (C- and F77 Bindings)
- mpi-c compiler wrapper (usually 'mpicc', or select a different via 'export mpicc=') must be in $path
- ./configure && make
- include "nbc.h" in your program
- link the program with "libnbc.a" (-lnbc) (you find the library in .libs after the build)
A description of LibNBC and its usage is available in "Implementation and Performance
Analysis of Non-Blocking Collective Operations for MPI" [1] and
"Design,
Implementation, and Usage of LibNBC" [2]. Reference [1] should
be used for general citations of LibNBC.
The InfiniBand-optimization is described in "Optimizing non-blocking
Collective Operations for InfiniBand" [3]. The threaded implementation of LibNBC (on IB, as well as MPI) is described in "Message Progression in Parallel Computing - To Thread or not to Thread?" [4]
References
Acknowledgements
Most of the work was done at the Open
Systems Lab at the Indiana
University. I want to thank
Jeff Squyres (Cisco Systems),
Andrew Lumsdaine (Indiana
University),
George
Bosilca (University of Tennessee),
Michael Adams (Indiana University),
and Wolfgang
Rehm (TU Chemnitz)
for useful discussions contributing to the development of LibNBC.
|