[mpiwg-tools] Questions for the tools community

John DelSignore John.DelSignore at roguewave.com
Fri Sep 6 05:56:33 CDT 2019

Hi Jeff,

I'm not sure I fully understand your question.

TotalView definitely supports F90/F95 array and pointer variables, which under the covers are implemented as some sort of descriptor object. The descriptor formats vary from platform to platform and compiler to compiler, but usually a descriptor consists of an lower bound, upper bound, stride, pointer to the data, and perhaps flags. The debug info (DWARF, STABS, etc.) also varies, so it can be complicated, but we handle the debug information such that the user sees the right data.

I'm not familiar with what you mean by "Fortran descriptors as choice buffers". I don't know much about Fortran 03/08 and I don't know if a "choice buffer" a Fortran thing or an MPI-specific Fortran thing. Googling the term seems to turn up hits that imply that it's an MPI/Fortran thing, but I'm not sure. A brief explanation would help. AFAICT, depending on what the compiler does with "Fortran descriptors as choice buffers", a tool that already supports Fortran descriptors might "just work", but without a concrete example I can't say for sure.

To answer your second question, I'm not 100% sure what you mean by "intercept", but I'm fairly sure that TotalView does not intercept symbols as described in MPI-3.1 table 17.1.

Cheers, John D.

On 08/29/19 10:46, Jeff Squyres (jsquyres) via mpiwg-tools wrote:

Should I infer from the lack of reply that no tools properly handle either Fortran descriptors or the descriptor-based symbols?

On Aug 25, 2019, at 11:31 AM, Jeff Squyres (jsquyres) via mpiwg-tools <mpiwg-tools at lists.mpi-forum.org><mailto:mpiwg-tools at lists.mpi-forum.org> wrote:

In Open MPI, we are finally working towards supporting Fortran descriptors for choice buffers (i.e., "TYPE(*), DIMENSION(..)").

Per MPI-3.1 p613 table 17.1, this means ***changing all the back-end symbols*** that are used for PMPI-style interception.

A concrete example:

- in mpif.h / the mpi module, MPI_SEND will become MPI_SEND_FTS
- in the mpi_f08 module, MPI_SEND will become MPI_SEND_F08TS

I.e., anywhere the application calls MPI_SEND, it will be transmogrified to either MPI_SEND_FTS or MPI_SEND_F08TS.  And the choice buffer passed will be a descriptor (which may therefore be a subarray, not a contiguous buffer), not a naked pointer.

Here's my questions:

1. Do any tools support Fortran descriptors as choice buffers?
2. Do any tools intercept the symbols as described in MPI-3.1 table 17.1?

Jeff Squyres
jsquyres at cisco.com<mailto:jsquyres at cisco.com>

mpiwg-tools mailing list
mpiwg-tools at lists.mpi-forum.org<mailto:mpiwg-tools at lists.mpi-forum.org>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpi-forum.org/pipermail/mpiwg-tools/attachments/20190906/14412030/attachment.html>

More information about the mpiwg-tools mailing list