Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C++ MPI standard 3

MPI standard 3 was released in 2011 with no C++ bindings ! my question is how to program distributed computing in C++ without MPI (note we need also OpenMP CUDA Openacc) is there an alternative to MPI in C++ (not MPI 2.2, boost MPI)? is MPI built on TCP/IP so i can build my own way using TCP/IP in C++ ?

is there open source binding to MPI 3 for C++ ?

or just you must stick to C GTK+ CUDA OpenMP OpenGL MPI 3

what if you want C++ QT CUDA OpenMP OpenGL + distributed computing API ?

Ubuntu and many Linux distros seeks to replace Xserver with Wayland and MIR both will write special API and layer to create context for OpenGL desktop to replace GLX also GTK+ will has MIR Wayland integeration so on Linux if something changed some people and groups try to fix it try to develop new solution

but MPI 3 C++ binding i don't find a solution to it

like image 887
Belal Medhat Avatar asked Nov 04 '14 02:11

Belal Medhat


People also ask

What is MPI standard?

MPI is a library specification for message-passing, proposed as a standard by a broadly based committee of vendors, implementors, and users. The MPI standard is available. MPI was designed for high performance on both massively parallel machines and on workstation clusters.

What is MPI and why it is used?

Message Passing Interface (MPI) is a communication protocol for parallel programming. MPI is specifically used to allow applications to run in parallel across a number of separate computers connected by a network.

What is the full form of MPI 1 point?

The global Multidimensional Poverty Index (MPI) is an international measure of acute multidimensional poverty covering over 100 developing countries.

What is MPI and how is it constructed?

It is a library that runs with standard C or Fortran programs, using commonly-available operating system services to create parallel processes and exchange information among these processes. MPI is designed to allow users to create programs that can run efficiently on most parallel architectures.


1 Answers

The official recommendation is to use the C bindings, for the reasons given in the comments. The only loss of functionality here pertains to exceptions and you won't miss it because no implementation was fault-tolerant in the MPI-2 era anyways.

Boost::MPI is nice but supports very few features (the most popular ones).

Rolling your own C++ wrappers is encouraged. Elemental (libelemental.org) has a nice set that do magic with type inference.

I have some personal interest in developing a new set of C++ bindings but haven't had time to make progress. There's a StackExchange Computational Science post with a detailed discussion to which you might contribute.

like image 79
Jeff Hammond Avatar answered Sep 21 '22 13:09

Jeff Hammond