Currently, AMPI does it's own messaging within a process. By that I mean AMPI invokes an entry method on the destination chare array element (AMPI rank), then once the message is matched it will do a direct memcpy() of the source buffer to the destination buffer, before invoking a Charm++ callback on the sender to notify it of completion of the send request. This means that only the rendezvous message and the completion message are visible in Projections, and all of the real message payload's transfer is invisible.
I'd like to add explicit tracing to AMPI to make the memcpy() visible in all Projections views and to have the number of bytes copied be visible in the appropriate views such as Communication over Time and Communication across PEs.
Original issue: https://charm.cs.illinois.edu/redmine/issues/1818
Currently, AMPI does it's own messaging within a process. By that I mean AMPI invokes an entry method on the destination chare array element (AMPI rank), then once the message is matched it will do a direct memcpy() of the source buffer to the destination buffer, before invoking a Charm++ callback on the sender to notify it of completion of the send request. This means that only the rendezvous message and the completion message are visible in Projections, and all of the real message payload's transfer is invisible.
I'd like to add explicit tracing to AMPI to make the memcpy() visible in all Projections views and to have the number of bytes copied be visible in the appropriate views such as Communication over Time and Communication across PEs.