eschnett / MPItrampoline

A forwarding MPI implementation that can use any other MPI implementation via an MPI ABI
MIT License
44 stars 4 forks source link

Add support for MPI profiling interface #21

Closed ocaisa closed 2 years ago

ocaisa commented 2 years ago

Each standard MPI function can be called with an MPI_ or PMPI_ prefix (quoting from https://www.open-mpi.org/faq/?category=perftools#PMPI), I think MPItrampoline doesn't currently support the PMPI_ calls.

ocaisa commented 2 years ago

These calls are used by profiling tools like Scalasca

ocaisa commented 2 years ago

Another important comment there:

Be sure you make the library dynamic. A static library can experience the linker problems described in the Complications section of the Profiling Interface chapter of the MPI standard.

which I guess will lead back to the OSX issues mentioned in #13

eschnett commented 2 years ago

Yes, the profiling interfaces are not yet implemented. I am only vaguely familiar with them, I will have to study the standard.

I guess the complications described there have to do with resolving symbols at run time, i.e. what ELF calls "semantic interposition".

eschnett commented 2 years ago

See https://github.com/eschnett/MPItrampoline/pull/22. Do you have time to test this?

ocaisa commented 2 years ago

I can build Score-P later today, that should be a good test. I can use https://scorepci.pages.jsc.fz-juelich.de/scorep-pipelines/docs/scorep-4.1/html/quickstart.html#quick_example to do a runtime test.

ocaisa commented 2 years ago

BTW I did do the build of Score-P and successfully used it, so I think this can be closed