OpenMPI  0.1.1
OTFAUX_MsgMatching.h
Go to the documentation of this file.
1 #ifndef OTFAUX_MSGMATCHING_H
2 #define OTFAUX_MSGMATCHING_H
3 
4 #include <otf.h>
5 
6 /**
7  * @file otfauxlib/OTFAUX_MsgMatching.h
8  *
9  * @brief Provides a module to match MPI P2P massages.
10  */
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif /* __cplusplus */
15 
16 /**
17  * @defgroup msgmatch Module to match messages.
18  *
19  * @{
20  */
21 
22 /** Opaque type for using the matching module. */
24 
25 /** Create a context for matching messages. */
27 
28 /** Destroy a context previously created with @a OTFAUX_MsgMatching_Create. */
30 
31 /** Provide a recv event for matching. */
33  uint64_t sender,
34  uint64_t receiver,
35  uint32_t tag,
36  uint32_t comm,
37  uint64_t time,
38  uint32_t size,
39  uint32_t scl );
40 
41 /**
42  * Try to match a send with the corresponding recv.
43  *
44  * @return 1 for success
45  * 0 for no recv
46  */
48  uint64_t sender,
49  uint64_t receiver,
50  uint32_t tag,
51  uint32_t comm,
52  uint64_t* ptime,
53  uint32_t* psize,
54  uint32_t* pscl );
55 
56 /**
57  * If you think the OTFAUX_MsgMatching_Context holds to much memory, you can
58  * order him to release unused memory.
59  *
60  */
62 
63 
64 /**
65  * @}
66  */
67 
68 
69 /**
70  * @defgroup otfauxtud Special KeyValue names/types for messages matching used
71  * by the TU Dresden
72  *
73  * @{
74  */
75 
76 #define OTFAUX_KEYVALUE_TUD_P2P_RECEIVED_TIME_NAME "TUD::p2p-received-time"
77 #define OTFAUX_KEYVALUE_TUD_P2P_RECEIVED_TIME_TYPE OTF_UINT64
78 #define OTFAUX_KEYVALUE_TUD_P2P_RECEIVED_SIZE_NAME "TUD::p2p-received-size"
79 #define OTFAUX_KEYVALUE_TUD_P2P_RECEIVED_SIZE_TYPE OTF_UINT32
80 #define OTFAUX_KEYVALUE_TUD_P2P_RECEIVED_SCL_NAME "TUD::p2p-received-scl"
81 #define OTFAUX_KEYVALUE_TUD_P2P_RECEIVED_SCL_TYPE OTF_UINT32
82 
83 /**
84  * @}
85  */
86 
87 
88 #ifdef __cplusplus
89 }
90 #endif /* __cplusplus */
91 
92 #endif /* OTFAUX_MSGMATCHING_H */
void OTFAUX_MsgMatching_destroy(OTFAUX_MsgMatching_Context *mm_context)
Destroy a context previously created with OTFAUX_MsgMatching_Create.
Definition: OTFAUX_MsgMatching.c:71
Main include file for applications using OTF.
void OTFAUX_MsgMatching_releaseMemory(OTFAUX_MsgMatching_Context *mm_context)
If you think the OTFAUX_MsgMatching_Context holds to much memory, you can order him to release unused...
Definition: OTFAUX_MsgMatching.c:268
void OTFAUX_MsgMatching_enqueueRecv(OTFAUX_MsgMatching_Context *mm_context, uint64_t sender, uint64_t receiver, uint32_t tag, uint32_t comm, uint64_t time, uint32_t size, uint32_t scl)
Provide a recv event for matching.
Definition: OTFAUX_MsgMatching.c:179
Definition: OTFAUX_MsgMatching.c:40
OTFAUX_MsgMatching_Context * OTFAUX_MsgMatching_create(void)
Create a context for matching messages.
Definition: OTFAUX_MsgMatching.c:50
int OTFAUX_MsgMatching_matchSend(OTFAUX_MsgMatching_Context *mm_context, uint64_t sender, uint64_t receiver, uint32_t tag, uint32_t comm, uint64_t *ptime, uint32_t *psize, uint32_t *pscl)
Try to match a send with the corresponding recv.
Definition: OTFAUX_MsgMatching.c:217