Life would be so much easier if only we had the source code...
Home -> Research -> NB Collectives -> LibNBC
Home
  Publications
  Awards
  Research
    
NB Collectives
      
LibNBC
      NBCBench
      Performance
      CG Solver
      Kernels
      HPL
    MPI Topologies
    MPI Datatypes
    Netgauge
    Network Topologies
    Ethernet BTL eth
    ORCS
    DFSSSP
    Older Projects
    cDAG
    LogGOPSim
    CoMPIler
  Teaching
  Miscellaneous
  Full CV [pdf]
  BLOG






  Events








  Past Events





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)

  1. mpi-c compiler wrapper (usually 'mpicc', or select a different via 'export mpicc=') must be in $path
  2. ./configure && make
  3. include "nbc.h" in your program
  4. 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

SC07
[1] Torsten Hoefler, Andrew Lumsdaine and Wolfgang Rehm:
 Implementation and Performance Analysis of Non-Blocking Collective Operations for MPI In Proceedings of the 2007 International Conference on High Performance Computing, Networking, Storage and Analysis, SC07, presented in Reno, USA, IEEE Computer Society/ACM, Nov. 2007, (acceptance rate 20%, 54/268)
IUCS-TR
[2] Torsten Hoefler and Andrew Lumsdaine:
 Design, Implementation, and Usage of LibNBC Open Systems Lab, Indiana University. presented in Bloomington, IN, USA, School of Informatics, Aug. 2006,
CAC'08
[3] Torsten Hoefler and Andrew Lumsdaine:
 Optimizing non-blocking Collective Operations for InfiniBand In Proceedings of the 22nd IEEE International Parallel & Distributed Processing Symposium, CAC'08 Workshop, presented in Miami, FL, ISSN: 1530-2075, ISBN: 978-1-4244-1694-3, Apr. 2008,
Cluster'08
[4] Torsten Hoefler and Andrew Lumsdaine:
 Message Progression in Parallel Computing - To Thread or not to Thread? In Proceedings of the 2008 IEEE International Conference on Cluster Computing, presented in Tsukuba, Japan, IEEE Computer Society, ISSN: 1552-5244, ISBN: 978-1-4244-2640, Oct. 2008, (acceptance rate 30%, 28/92)

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.


serving: 3.128.95.37:1765© Torsten Hoefler