His library aims to make a simple-to-use library that exploits the features available in modern C++ compliers — it’s not a simple 1:1 mapping of C-to-C++ bindings like the MPI 2.x C++ bindings were.
Similar to previous versions of the standard, the MPI-3.1 standard is now available in hardcover.
Even though I have a copy of the MPI-3.1 PDF for quick/easy reference on my laptop, I find something intangibly inherently useful (and comforting?) in having a paper copy of the standard to thumb through.
The books have been (literally) spanning the color spectrum:
- MPI 2.1: hardcover was yellow
- MPI 2.2: hardcover was orange
- MPI 3.0: hardcover was green
- MPI 3.1: hardcover is blue
Libfabric is the next-generation Linux library being developed by an open source consortium of vendors and academic researchers that implements the OpenFabrics Interfaces, specifically designed to expose application-focused networking functionality to high performance applications (e.g., MPI, PGAS, SHMEM, datacenter applications, etc.).
I’ve described libfabric in a few prior blog entires, and how we actively support Cisco usNIC functionality in libfabric.
In my previous blog entry, I answered a user question about how MPI defines its global constants, specifically in the context of interactions with other languages.
I went beyond that answer, and also explained why MPI does not define an ABI.
In this entry, I’ll go into the “how does MPI interact with other languages?” part of the question.
More specifically, the user was asking how MPI defines its interactions with languages other than C and Fortran (i.e., the two officially-supported language bindings).
This is a good question, and has implications on both the MPI standards documents and various MPI implementations. Let’s dive in.