GithubHelp home page GithubHelp logo

lynex / libmp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gpudirect/libmp

0.0 1.0 0.0 546 KB

Simple message passing library

Makefile 1.86% Shell 5.57% Cuda 46.54% C 34.87% C++ 10.22% M4 0.95%

libmp's Introduction

LibMP

Introduction

LibMP is a lightweight messaging library built on top of LibGDSync APIs, developed as a technology demonstrator to easily deploy the GPUDirect Async technology in applications. Main LibMP features are:

  • Thin layer on top of IB Verbs, LibGDSync
  • MPI out-of-band mechanism to distribute the process info order to establish IB connections
  • MPI is never used during actual communications
  • Point-to-point and one-sided communications, no collectives
  • No tags, no wildcards, no data types
  • Can easily combine GPUDirect Async with GPUDirect RDMA

Requirements

Basic LibMP requirements are:

  • OpenMPI v1.10 or newer
  • Mellanox OFED (MOFED) 4.0 or newer
  • Mellanox Connect-IB, ConnectX-4 HCAs or newer
  • LibGDSync

To use GPUDirect Async in combination with GPUDirect RDMA:

  • OpenMPI with CUDA support
  • A recent CUDA Toolkit is required, minimally 8.0
  • A recent display driver, i.e. r361, r367 or later, is required
  • The Mellanox OFED GPUDirect RDMA kernel module, https://github.com/Mellanox/nv_peer_memory, is required to allow the HCA to access the GPU memory.

Build

Use the scripts/env_setup.sh file to specify MPI_PATH, CUDA_PATH, LIBGDSYNC_PATH and LIBMP_PATH env vars useful for both LibMP and LibGDSync.

Use the build.sh script to build LibMP.

Run

In scripts folder:

  • wrapper.sh: sample script with some topology example
  • test.sh: sample script to test all libmp examples and benchmarks

You need to create your own hostfile inside scripts directory

COMM library

COMM is an additional library built on top of LibMP. With COMM you can easily deploy LibMP in you applications; the pingpong is an example of COMM usage.

GPUDirect Async suite

We created a new repository here in order to collect in a single project all the components of the GPUDirect Async technology. In this repo you can find several scripts useful to configure, build and run all the GPUDirect Async libraries, tests, benchmarks and examples.

Acknowledging LibMP and GPUDirect Async

If you find this software useful in your work, please cite:

"GPUDirect Async: exploring GPU synchronous communication techniques for InfiniBand clusters", E. Agostini, D. Rossetti, S. Potluri. Journal of Parallel and Distributed Computing, Vol. 114, Pages 28-45, April 2018

"Offloading communication control logic in GPU accelerated applications", E. Agostini, D. Rossetti, S. Potluri. Proceedings of the 17th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGrid’ 17), IEEE Conference Publications, Pages 248-257, Nov 2016

libmp's People

Contributors

drossetti avatar e-ago avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.