Skip to content

Commit 237c6ee

Browse files
committed
Add note pointing to the MPI spec that this profiling interface is based off of
1 parent efa77e9 commit 237c6ee

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

src/mercury_prof_interface.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,22 @@
1414
#include "mercury_types.h"
1515
#include "mercury_prof_types.h"
1616

17+
18+
/*************************************/
19+
/* Note */
20+
/*************************************/
21+
22+
/* Refer to: https://www.mpi-forum.org/docs/mpi-3.1/mpi31-report/node372.htm#Node372
23+
* for the corresponding MPI 3.1 PVAR interface specification that this implementation is largely based off of.
24+
*
25+
* Notable differences with MPI (implementation, not interface spec):
26+
* 1. PVAR sessions in Mercury are associated with the hg_class object to avoid the use of global variables.
27+
* 2. Similarly, PVARs themselves are not global variables and aren't declared globally and used as such.
28+
* Instead, each module interested in exporting PVARs must register these PVARs and refer to them by the
29+
* use of handles (that internally fetch the address of the PVAR) within the local function where these PVARs are updated.
30+
* 3. We used atomics for updating counter PVARs where MPI does not.
31+
*/
32+
1733
/*************************************/
1834
/* Public Type and Struct Definition */
1935
/*************************************/

0 commit comments

Comments
 (0)