[mpiwg-tools] PMPI for a complete MPI wrapper

Jean-Baptiste BESNARD jbbesnard at paratools.fr
Wed Oct 4 04:00:35 CDT 2017


Dear Max,

I’m not sure I completely understand what you mean by a « pmpi.h » however I may have some initial elements below.

The PMPI interface is currently targeting MPI functions only and indeed some of the values you’ll find in your executable will be compile time constants.
In fact, most MPI types/Constants are implementation dependent, there is no unified ABI.

Nonetheless, you might be able to interpret them in your wrapper library in order to have them « rerouted » to your target implementation.
I mean, knowing the value of MPI_COMM_WORLD you could rewrite it to be MPI_COMM_WORLD2.
And for sure you wont’t find a PMPI_COMM_WORLD.

I can help on writing a wrapper for the whole PMPI interface. See my repo here: https://github.com/besnardjb/mpi-snippets <https://github.com/besnardjb/mpi-snippets>
There is a simple python script generating VIM snippets for MPI from JSON specs, it can easily be converted to a script generating the whole MPI interface.

Eventually, an approach close to what you want to do might be https://github.com/cea-hpc/wi4mpi <https://github.com/cea-hpc/wi4mpi> which operates this systematic handler conversion between MPI flavors, but this clearly involves some rewriting.

Hope this helps.

Regards,

Jean-Baptiste.

> Le 4 oct. 2017 à 10:35, Max Sagebaum <max.sagebaum at scicomp.uni-kl.de> a écrit :
> 
> Hello @ all,
> 
> my question is concerning the PMPI specification. I hope the list is the correct place to ask.
> 
> I want to write a complete wrapper for MPI. That is every define, typedef and function will be wrapped and might be completely changed. Currently I prefixed everything with AMPI_ such that no name clashes exist. But the user would need to rename every occurrence of MPI_ with AMPI_
> 
> I would now like to use the PMPI definition of MPI to define my wrappers as the MPI version which then use the PMPI definitions. Unfortunately I could not find tutorials for a complete wrapper.
> 
> As an example take MPI_COMM_WORLD. I made a grep on the openmpi installation on my linux machine for PMPI_COMM_WORLD but the result was empty. The definition of MPI_COMM_WORLD was
> #define MPI_COMM_WORLD OMPI_PREDEFINED_GLOBAL( MPI_Comm, ompi_mpi_comm_world)
> without any chance to switch to PMPI_COMM_WORLD as a predefined macro.
> 
> I also checked the newest source tarball of openmpi and I could not find anything for PMPI_COMM_WORLD there.
> 
> In the mpi 3.0 standard on page 555 in section 14.2.1 the requirements are just listed for functions. Was the definition of the PMPI_ supplements for defines, types etc. never discussed?
> 
> I would have expected, that I can just include a pmpi.h and then I would have all the PMPI_ symbols without the MPI symbols available.
> 
> Do you know of any way I could make my idea work?
> 
> Cheers
> 
> Max
> 
> --
> Max Sagebaum
> 
> Chair for Scientific Computing,
> TU Kaiserslautern,
> Bldg/Geb 34, Paul-Ehrlich-Strasse,
> 67663 Kaiserslautern, Germany
> 
> Phone: +49 (0)631 205 5638
> Fax:   +49 (0)631 205 3056
> Email: max.sagebaum at scicomp.uni-kl.de
> URL:   www.scicomp.uni-kl.de
> 
> 
> 
> 
> 
> _______________________________________________
> mpiwg-tools mailing list
> mpiwg-tools at lists.mpi-forum.org
> https://lists.mpi-forum.org/mailman/listinfo/mpiwg-tools

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpi-forum.org/pipermail/mpiwg-tools/attachments/20171004/bb2776bd/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: Message signed with OpenPGP
URL: <http://lists.mpi-forum.org/pipermail/mpiwg-tools/attachments/20171004/bb2776bd/attachment.sig>


More information about the mpiwg-tools mailing list