Discamus continentiam augere, luxuriam coercere
Home -> Research -> NB Collectives -> LibNBC
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)

  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

[1] T. Hoefler, A. Lumsdaine and W. 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,
[2] T. Hoefler and A. Lumsdaine:
 Design, Implementation, and Usage of LibNBC Open Systems Lab, Indiana University. presented in Bloomington, IN, USA, School of Informatics, Aug. 2006,
[3] T. Hoefler and A. 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,
[4] T. Hoefler and A. 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,

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: 38.107.191.87:41006© Torsten Hoefler