SST/macro
parsedumpi_callbacks.h
Go to the documentation of this file.
1 /*
2  * This file is part of SST/macroscale:
3  * The macroscale architecture simulator from the SST suite.
4  * Copyright (c) 2009 Sandia Corporation.
5  * This software is distributed under the BSD License.
6  * Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
7  * the U.S. Government retains certain rights in this software.
8  * For more information, see the LICENSE file in the top
9  * SST/macroscale directory.
10  */
11 
12 #ifndef SSTMAC_SOFTWARE_SKELETONS_UNDUMPI_PARSEDUMPI_CALLBACKS_H_INCLUDED
13 #define SSTMAC_SOFTWARE_SKELETONS_UNDUMPI_PARSEDUMPI_CALLBACKS_H_INCLUDED
14 
16 #include <sumi-mpi/sstmac_mpi_integers.h>
17 #include <sumi-mpi/mpi_api_fwd.h>
18 #include <sumi-mpi/mpi_status.h>
19 #include <dumpi/libundumpi/libundumpi.h>
20 #include <stdint.h>
21 
22 
23 namespace sumi {
24 
25 /// Populate C-style callbacks for a libundumpi parser.
27 {
28  friend class parsedumpi_unit_test;
29  friend int pass(void* uarg, const dumpi_time *cpu,
30  const dumpi_time *wall, const dumpi_perfinfo *perf, const char* fxn);
31  friend int not_implemented(const char* fxn);
32 
33  public:
34  /// Accepted actions to be taken for unimplemented functions.
35  /// These could be function pointers, but wrapping those in python
36  /// leads to incredibly hard-to-read code.
38 
39  private:
40  /// The parent for this callback-driven parser.
41  /// Can be safely held by raw pointer, since the parent holds this
42  /// object by value.
44 
45  /// The callback struct we are using.
46  /// This is pretty big (2.4 K), but at least it can be shared.
47  static libundumpi_callbacks *cbacks_;
48 
49  /// The dumpi timestamp at which we finished the most recent MPI call.
50  dumpi_clock trace_compute_start_;
51 
52  /// The state of perfcounters when the most recent MPI call was finished.
53  std::vector<int64_t> perfctr_compute_start_;
54 
55  /// Map dumpi request identifiers to objects.
56  typedef std::map<dumpi_comm, MPI_Comm> mpicomm_map_t;
57  typedef std::map<dumpi_request, MPI_Request> request_map_t;
58  typedef std::map<dumpi_group, MPI_Group> mpigroup_map_t;
59  typedef std::map<dumpi_op, MPI_Op> mpiop_map_t;
60  typedef std::map<dumpi_datatype, MPI_Datatype> mpitype_map_t;
61 
62  request_map_t request_;
63 
64  /// MPI types. Gets pre-populated with all the standard datatypes.
65  mpitype_map_t mpitype_;
66 
67  /// Dumpi also (as of version 0.6 or so) contains datatype sizes.
68  dumpi_sizeof datatype_sizes_;
69 
70  /// MPI communicators.
71  mpicomm_map_t mpicomm_;
72 
73  mpigroup_map_t mpigroups_;
74 
75  /// MPI operations.
76  mpiop_map_t mpiop_;
77 
79 
80  public:
81  /// Populate callbacks.
83 
84  void
85  set_initialized(bool flag) {
86  initialized_ = flag;
87  }
88 
89  bool
90  initialized() const {
91  return initialized_;
92  }
93 
94  /// Start parsing.
95  /**
96  * @brief parse_stream
97  * @param filename
98  * @param print_progress Whether to print progress - usually only true for rank 0
99  * @param percent_terminate -1 indicates run to end, otherwise terminate at some percent - only rank 0 shoudl cause termination
100  */
101  void parse_stream(const std::string &filename,
102  bool print_progress,
103  double percent_terminate);
104 
105  private:
106  /// Initialize maps (datatypes etc.). Called at constrution.
107  void init_maps();
108 
109  /// Indicate that we are starting an MPI call.
110  void start_mpi(const dumpi_time *cpu, const dumpi_time *wall,
111  const dumpi_perfinfo *perf);
112 
113  /// Indicate that we have completed an MPI call.
114  void end_mpi(const dumpi_time *cpu, const dumpi_time *wall,
115  const dumpi_perfinfo *perf);
116 
117  /// Access the mpiapi.
118  mpi_api* getmpi() {
119  return parent_->mpi();
120  }
121 
122  /// Store a single request handle.
123  void store_request(dumpi_request id, MPI_Request request);
124 
125  /// Get a single request handle.
126  MPI_Request* get_request_ptr(dumpi_request id);
127 
128  /// Get a group of request handles.
129  MPI_Request* get_requests(int count, const dumpi_request *dumpireq);
130 
131  /// Remove a request from the map.
132  void complete_request(dumpi_request id);
133 
134  /// Complete multiple requests.
135  template <typename Iter>
136  void complete_requests(Iter begin, Iter end);
137 
138  void nullify_request(dumpi_request rid);
139 
140  void nullify_requests(int count, const dumpi_request* trace_requests);
141 
142  /// Get an mpiid.
143  /// Special handling for MPI_ROOT and MPI_ANY_SOURCE.
144  int get_mpiid(dumpi_source id);
145 
146  /// Get an mpi tag.
147  /// Special handling for MPI_ANY_TAG.
148  inline int get_mpitag(dumpi_tag tag) const {
149  if(tag == DUMPI_ANY_TAG) return MPI_ANY_TAG;
150  else return tag;
151  }
152 
153  /// Add a new mpi type.
154  void add_mpitype(dumpi_datatype id, MPI_Datatype mpit);
155 
156  /// Erase the mapping for an mpi type. Does not erase built-in mpi types.
157  void erase_mpitype(dumpi_datatype id);
158 
159  /// Access mpi type.
160  /// \throw sprockit::value_error if no mapping exists for this datatype.
161  MPI_Datatype get_mpitype(dumpi_datatype id);
162 
163  /// Access mpi type.
164  /// \throw sprockit::value_error if no mapping exists for this datatype.
165  MPI_Datatype* get_mpitypes(int count, const dumpi_datatype* id);
166 
167  /// Add a new mpi comm.
168  void add_mpicomm(dumpi_comm id, MPI_Comm comm);
169 
170  /// Erase the mapping for an mpi comm. Does not erase built-in comms.
171  void erase_mpicomm(dumpi_comm id);
172 
173  /// Access an mpi communicator.
174  MPI_Comm get_mpicomm(dumpi_comm id);
175 
176  /// Add a new mpi group.
177  void add_mpigroup(dumpi_group id, MPI_Group comm);
178 
179  /// Erase the mapping for an mpi group. Does not erase built-in group.
180  void erase_mpigroup(dumpi_group id);
181 
182  /// Access an mpi communicator.
183  MPI_Group get_mpigroup(dumpi_group id);
184 
185  /// Add a new mpi op.
186  void add_mpiop(dumpi_op id, MPI_Op op);
187 
188  /// Erase the mapping for an mpi op. Does not erase built-in operations.
189  void erase_mpiop(dumpi_op id);
190 
191  /// Access an mpi opunicator.
192  MPI_Op get_mpiop(dumpi_op id);
193 
194  /// Define all callback routines.
195  void set_callbacks();
196 
197  static int
198  on_MPI_Send(const dumpi_send *prm, uint16_t thread,
199  const dumpi_time *cpu, const dumpi_time *wall,
200  const dumpi_perfinfo *perf, void *uarg);
201 
202  static int
203  on_MPI_Bsend(const dumpi_bsend *prm, uint16_t thread,
204  const dumpi_time *cpu, const dumpi_time *wall,
205  const dumpi_perfinfo *perf, void *uarg);
206  static int
207  on_MPI_Ssend(const dumpi_ssend *prm, uint16_t thread,
208  const dumpi_time *cpu, const dumpi_time *wall,
209  const dumpi_perfinfo *perf, void *uarg);
210  static int
211  on_MPI_Rsend(const dumpi_rsend *prm, uint16_t thread,
212  const dumpi_time *cpu, const dumpi_time *wall,
213  const dumpi_perfinfo *perf, void *uarg);
214 
215  static int
216  on_MPI_Recv(const dumpi_recv *prm, uint16_t thread,
217  const dumpi_time *cpu, const dumpi_time *wall,
218  const dumpi_perfinfo *perf, void *uarg);
219  static int
220  on_MPI_Get_count(const dumpi_get_count *prm, uint16_t thread,
221  const dumpi_time *cpu, const dumpi_time *wall,
222  const dumpi_perfinfo *perf, void *uarg);
223 
224  static int
225  on_MPI_Buffer_attach(const dumpi_buffer_attach *prm, uint16_t thread,
226  const dumpi_time *cpu, const dumpi_time *wall,
227  const dumpi_perfinfo *perf, void *uarg);
228  static int
229  on_MPI_Buffer_detach(const dumpi_buffer_detach *prm, uint16_t thread,
230  const dumpi_time *cpu, const dumpi_time *wall,
231  const dumpi_perfinfo *perf, void *uarg);
232  static int
233  on_MPI_Isend(const dumpi_isend *prm, uint16_t thread,
234  const dumpi_time *cpu, const dumpi_time *wall,
235  const dumpi_perfinfo *perf, void *uarg);
236  static int
237  on_MPI_Ibsend(const dumpi_ibsend *prm, uint16_t thread,
238  const dumpi_time *cpu, const dumpi_time *wall,
239  const dumpi_perfinfo *perf, void *uarg);
240  static int
241  on_MPI_Issend(const dumpi_issend *prm, uint16_t thread,
242  const dumpi_time *cpu, const dumpi_time *wall,
243  const dumpi_perfinfo *perf, void *uarg);
244  static int
245  on_MPI_Irsend(const dumpi_irsend *prm, uint16_t thread,
246  const dumpi_time *cpu, const dumpi_time *wall,
247  const dumpi_perfinfo *perf, void *uarg);
248  static int
249  on_MPI_Irecv(const dumpi_irecv *prm, uint16_t thread,
250  const dumpi_time *cpu, const dumpi_time *wall,
251  const dumpi_perfinfo *perf, void *uarg);
252  static int
253  on_MPI_Wait(const dumpi_wait *prm, uint16_t thread,
254  const dumpi_time *cpu, const dumpi_time *wall,
255  const dumpi_perfinfo *perf, void *uarg);
256  static int
257  on_MPI_Test(const dumpi_test *prm, uint16_t thread,
258  const dumpi_time *cpu, const dumpi_time *wall,
259  const dumpi_perfinfo *perf, void *uarg);
260  static int
261  on_MPI_Request_free(const dumpi_request_free *prm, uint16_t thread,
262  const dumpi_time *cpu, const dumpi_time *wall,
263  const dumpi_perfinfo *perf, void *uarg);
264  static int
265  on_MPI_Waitany(const dumpi_waitany *prm, uint16_t thread,
266  const dumpi_time *cpu, const dumpi_time *wall,
267  const dumpi_perfinfo *perf, void *uarg);
268 
269  /// Variant implemenation of MPI_Waitany: Simulator waits for exactly
270  /// the request matched by the trace file (pessimistic wait).
271  static int
272  waitany_pessimistic(const dumpi_waitany *prm, uint16_t thread,
273  const dumpi_time *cpu, const dumpi_time *wall,
274  const dumpi_perfinfo *perf, void *uarg);
275 
276  static int
277  on_MPI_Testany(const dumpi_testany *prm, uint16_t thread,
278  const dumpi_time *cpu, const dumpi_time *wall,
279  const dumpi_perfinfo *perf, void *uarg);
280 
281  /// Variant implementation of MPI_Testany: Simulator waits for exactly
282  /// the request matched by the trace file (pessimistic test).
283  static int
284  testany_pessimistic(const dumpi_testany *prm, uint16_t thread,
285  const dumpi_time *cpu, const dumpi_time *wall,
286  const dumpi_perfinfo *perf, void *uarg);
287 
288  static int
289  on_MPI_Waitall(const dumpi_waitall *prm, uint16_t thread,
290  const dumpi_time *cpu, const dumpi_time *wall,
291  const dumpi_perfinfo *perf, void *uarg);
292  static int
293  on_MPI_Testall(const dumpi_testall *prm, uint16_t thread,
294  const dumpi_time *cpu, const dumpi_time *wall,
295  const dumpi_perfinfo *perf, void *uarg);
296  static int
297  on_MPI_Waitsome(const dumpi_waitsome *prm, uint16_t thread,
298  const dumpi_time *cpu, const dumpi_time *wall,
299  const dumpi_perfinfo *perf, void *uarg);
300 
301  static int
302  on_MPI_Testsome(const dumpi_testsome *prm, uint16_t thread,
303  const dumpi_time *cpu, const dumpi_time *wall,
304  const dumpi_perfinfo *perf, void *uarg);
305  static int
306  on_MPI_Iprobe(const dumpi_iprobe *prm, uint16_t thread,
307  const dumpi_time *cpu, const dumpi_time *wall,
308  const dumpi_perfinfo *perf, void *uarg);
309  static int
310  on_MPI_Probe(const dumpi_probe *prm, uint16_t thread,
311  const dumpi_time *cpu, const dumpi_time *wall,
312  const dumpi_perfinfo *perf, void *uarg);
313  static int
314  on_MPI_Cancel(const dumpi_cancel *prm, uint16_t thread,
315  const dumpi_time *cpu, const dumpi_time *wall,
316  const dumpi_perfinfo *perf, void *uarg);
317  static int
318  on_MPI_Test_cancelled(const dumpi_test_cancelled *prm, uint16_t thread,
319  const dumpi_time *cpu, const dumpi_time *wall,
320  const dumpi_perfinfo *perf, void *uarg);
321  static int
322  on_MPI_Send_init(const dumpi_send_init *prm, uint16_t thread,
323  const dumpi_time *cpu, const dumpi_time *wall,
324  const dumpi_perfinfo *perf, void *uarg);
325 
326  static int
327  on_MPI_Bsend_init(const dumpi_bsend_init *prm, uint16_t thread,
328  const dumpi_time *cpu, const dumpi_time *wall,
329  const dumpi_perfinfo *perf, void *uarg);
330  static int
331  on_MPI_Ssend_init(const dumpi_ssend_init *prm, uint16_t thread,
332  const dumpi_time *cpu, const dumpi_time *wall,
333  const dumpi_perfinfo *perf, void *uarg);
334  static int
335  on_MPI_Rsend_init(const dumpi_rsend_init *prm, uint16_t thread,
336  const dumpi_time *cpu, const dumpi_time *wall,
337  const dumpi_perfinfo *perf, void *uarg);
338 
339  static int
340  on_MPI_Recv_init(const dumpi_recv_init *prm, uint16_t thread,
341  const dumpi_time *cpu, const dumpi_time *wall,
342  const dumpi_perfinfo *perf, void *uarg);
343  static int
344  on_MPI_Start(const dumpi_start *prm, uint16_t thread,
345  const dumpi_time *cpu, const dumpi_time *wall,
346  const dumpi_perfinfo *perf, void *uarg);
347  static int
348  on_MPI_Startall(const dumpi_startall *prm, uint16_t thread,
349  const dumpi_time *cpu, const dumpi_time *wall,
350  const dumpi_perfinfo *perf, void *uarg);
351  static int
352  on_MPI_Sendrecv(const dumpi_sendrecv *prm, uint16_t thread,
353  const dumpi_time *cpu, const dumpi_time *wall,
354  const dumpi_perfinfo *perf, void *uarg);
355  static int
356  on_MPI_Sendrecv_replace(const dumpi_sendrecv_replace *prm, uint16_t thread,
357  const dumpi_time *cpu, const dumpi_time *wall,
358  const dumpi_perfinfo *perf, void *uarg);
359  static int
360  on_MPI_Type_contiguous(const dumpi_type_contiguous *prm, uint16_t thread,
361  const dumpi_time *cpu, const dumpi_time *wall,
362  const dumpi_perfinfo *perf, void *uarg);
363  static int
364  on_MPI_Type_vector(const dumpi_type_vector *prm, uint16_t thread,
365  const dumpi_time *cpu, const dumpi_time *wall,
366  const dumpi_perfinfo *perf, void *uarg);
367  static int
368  on_MPI_Type_hvector(const dumpi_type_hvector *prm, uint16_t thread,
369  const dumpi_time *cpu, const dumpi_time *wall,
370  const dumpi_perfinfo *perf, void *uarg);
371  static int
372  on_MPI_Type_indexed(const dumpi_type_indexed *prm, uint16_t thread,
373  const dumpi_time *cpu, const dumpi_time *wall,
374  const dumpi_perfinfo *perf, void *uarg);
375  static int
376  on_MPI_Type_hindexed(const dumpi_type_hindexed *prm, uint16_t thread,
377  const dumpi_time *cpu, const dumpi_time *wall,
378  const dumpi_perfinfo *perf, void *uarg);
379  static int
380  on_MPI_Type_struct(const dumpi_type_struct *prm, uint16_t thread,
381  const dumpi_time *cpu, const dumpi_time *wall,
382  const dumpi_perfinfo *perf, void *uarg);
383  static int
384  on_MPI_Address(const dumpi_address *prm, uint16_t thread,
385  const dumpi_time *cpu, const dumpi_time *wall,
386  const dumpi_perfinfo *perf, void *uarg);
387  static int
388  on_MPI_Type_extent(const dumpi_type_extent *prm, uint16_t thread,
389  const dumpi_time *cpu, const dumpi_time *wall,
390  const dumpi_perfinfo *perf, void *uarg);
391  static int
392  on_MPI_Type_size(const dumpi_type_size *prm, uint16_t thread,
393  const dumpi_time *cpu, const dumpi_time *wall,
394  const dumpi_perfinfo *perf, void *uarg);
395  static int
396  on_MPI_Type_lb(const dumpi_type_lb *prm, uint16_t thread,
397  const dumpi_time *cpu, const dumpi_time *wall,
398  const dumpi_perfinfo *perf, void *uarg);
399  static int
400  on_MPI_Type_ub(const dumpi_type_ub *prm, uint16_t thread,
401  const dumpi_time *cpu, const dumpi_time *wall,
402  const dumpi_perfinfo *perf, void *uarg);
403  static int
404  on_MPI_Type_commit(const dumpi_type_commit *prm, uint16_t thread,
405  const dumpi_time *cpu, const dumpi_time *wall,
406  const dumpi_perfinfo *perf, void *uarg);
407  static int
408  on_MPI_Type_free(const dumpi_type_free *prm, uint16_t thread,
409  const dumpi_time *cpu, const dumpi_time *wall,
410  const dumpi_perfinfo *perf, void *uarg);
411  static int
412  on_MPI_Get_elements(const dumpi_get_elements *prm, uint16_t thread,
413  const dumpi_time *cpu, const dumpi_time *wall,
414  const dumpi_perfinfo *perf, void *uarg);
415  static int
416  on_MPI_Pack(const dumpi_pack *prm, uint16_t thread,
417  const dumpi_time *cpu, const dumpi_time *wall,
418  const dumpi_perfinfo *perf, void *uarg);
419  static int
420  on_MPI_Unpack(const dumpi_unpack *prm, uint16_t thread,
421  const dumpi_time *cpu, const dumpi_time *wall,
422  const dumpi_perfinfo *perf, void *uarg);
423  static int
424  on_MPI_Pack_size(const dumpi_pack_size *prm, uint16_t thread,
425  const dumpi_time *cpu, const dumpi_time *wall,
426  const dumpi_perfinfo *perf, void *uarg);
427  static int
428  on_MPI_Barrier(const dumpi_barrier *prm, uint16_t thread,
429  const dumpi_time *cpu, const dumpi_time *wall,
430  const dumpi_perfinfo *perf, void *uarg);
431  static int
432  on_MPI_Bcast(const dumpi_bcast *prm, uint16_t thread,
433  const dumpi_time *cpu, const dumpi_time *wall,
434  const dumpi_perfinfo *perf, void *uarg);
435  static int
436  on_MPI_Gather(const dumpi_gather *prm, uint16_t thread,
437  const dumpi_time *cpu, const dumpi_time *wall,
438  const dumpi_perfinfo *perf, void *uarg);
439  static int
440  on_MPI_Gatherv(const dumpi_gatherv *prm, uint16_t thread,
441  const dumpi_time *cpu, const dumpi_time *wall,
442  const dumpi_perfinfo *perf, void *uarg);
443  static int
444  on_MPI_Scatter(const dumpi_scatter *prm, uint16_t thread,
445  const dumpi_time *cpu, const dumpi_time *wall,
446  const dumpi_perfinfo *perf, void *uarg);
447  static int
448  on_MPI_Scatterv(const dumpi_scatterv *prm, uint16_t thread,
449  const dumpi_time *cpu, const dumpi_time *wall,
450  const dumpi_perfinfo *perf, void *uarg);
451  static int
452  on_MPI_Allgather(const dumpi_allgather *prm, uint16_t thread,
453  const dumpi_time *cpu, const dumpi_time *wall,
454  const dumpi_perfinfo *perf, void *uarg);
455  static int
456  on_MPI_Allgatherv(const dumpi_allgatherv *prm, uint16_t thread,
457  const dumpi_time *cpu, const dumpi_time *wall,
458  const dumpi_perfinfo *perf, void *uarg);
459  static int
460  on_MPI_Alltoall(const dumpi_alltoall *prm, uint16_t thread,
461  const dumpi_time *cpu, const dumpi_time *wall,
462  const dumpi_perfinfo *perf, void *uarg);
463  static int
464  on_MPI_Alltoallv(const dumpi_alltoallv *prm, uint16_t thread,
465  const dumpi_time *cpu, const dumpi_time *wall,
466  const dumpi_perfinfo *perf, void *uarg);
467  static int
468  on_MPI_Reduce(const dumpi_reduce *prm, uint16_t thread,
469  const dumpi_time *cpu, const dumpi_time *wall,
470  const dumpi_perfinfo *perf, void *uarg);
471  static int
472  on_MPI_Op_create(const dumpi_op_create *prm, uint16_t thread,
473  const dumpi_time *cpu, const dumpi_time *wall,
474  const dumpi_perfinfo *perf, void *uarg);
475  static int
476  on_MPI_Op_free(const dumpi_op_free *prm, uint16_t thread,
477  const dumpi_time *cpu, const dumpi_time *wall,
478  const dumpi_perfinfo *perf, void *uarg);
479  static int
480  on_MPI_Allreduce(const dumpi_allreduce *prm, uint16_t thread,
481  const dumpi_time *cpu, const dumpi_time *wall,
482  const dumpi_perfinfo *perf, void *uarg);
483  static int
484  on_MPI_Reduce_scatter(const dumpi_reduce_scatter *prm, uint16_t thread,
485  const dumpi_time *cpu, const dumpi_time *wall,
486  const dumpi_perfinfo *perf, void *uarg);
487  static int
488  on_MPI_Scan(const dumpi_scan *prm, uint16_t thread,
489  const dumpi_time *cpu, const dumpi_time *wall,
490  const dumpi_perfinfo *perf, void *uarg);
491  static int
492  on_MPI_Group_size(const dumpi_group_size *prm, uint16_t thread,
493  const dumpi_time *cpu, const dumpi_time *wall,
494  const dumpi_perfinfo *perf, void *uarg);
495  static int
496  on_MPI_Group_rank(const dumpi_group_rank *prm, uint16_t thread,
497  const dumpi_time *cpu, const dumpi_time *wall,
498  const dumpi_perfinfo *perf, void *uarg);
499  static int
500  on_MPI_Group_translate_ranks(const dumpi_group_translate_ranks *prm,
501  uint16_t thread,
502  const dumpi_time *cpu, const dumpi_time *wall,
503  const dumpi_perfinfo *perf, void *uarg);
504  static int
505  on_MPI_Group_compare(const dumpi_group_compare *prm, uint16_t thread,
506  const dumpi_time *cpu, const dumpi_time *wall,
507  const dumpi_perfinfo *perf, void *uarg);
508  static int
509  on_MPI_Comm_group(const dumpi_comm_group *prm, uint16_t thread,
510  const dumpi_time *cpu, const dumpi_time *wall,
511  const dumpi_perfinfo *perf, void *uarg);
512  static int
513  on_MPI_Group_union(const dumpi_group_union *prm, uint16_t thread,
514  const dumpi_time *cpu, const dumpi_time *wall,
515  const dumpi_perfinfo *perf, void *uarg);
516  static int
517  on_MPI_Group_intersection(const dumpi_group_intersection *prm, uint16_t thread,
518  const dumpi_time *cpu, const dumpi_time *wall,
519  const dumpi_perfinfo *perf, void *uarg);
520  static int
521  on_MPI_Group_difference(const dumpi_group_difference *prm, uint16_t thread,
522  const dumpi_time *cpu, const dumpi_time *wall,
523  const dumpi_perfinfo *perf, void *uarg);
524  static int
525  on_MPI_Group_incl(const dumpi_group_incl *prm, uint16_t thread,
526  const dumpi_time *cpu, const dumpi_time *wall,
527  const dumpi_perfinfo *perf, void *uarg);
528  static int
529  on_MPI_Group_excl(const dumpi_group_excl *prm, uint16_t thread,
530  const dumpi_time *cpu, const dumpi_time *wall,
531  const dumpi_perfinfo *perf, void *uarg);
532  static int
533  on_MPI_Group_range_incl(const dumpi_group_range_incl *prm, uint16_t thread,
534  const dumpi_time *cpu, const dumpi_time *wall,
535  const dumpi_perfinfo *perf, void *uarg);
536  static int
537  on_MPI_Group_range_excl(const dumpi_group_range_excl *prm, uint16_t thread,
538  const dumpi_time *cpu, const dumpi_time *wall,
539  const dumpi_perfinfo *perf, void *uarg);
540  static int
541  on_MPI_Group_free(const dumpi_group_free *prm, uint16_t thread,
542  const dumpi_time *cpu, const dumpi_time *wall,
543  const dumpi_perfinfo *perf, void *uarg);
544  static int
545  on_MPI_Comm_size(const dumpi_comm_size *prm, uint16_t thread,
546  const dumpi_time *cpu, const dumpi_time *wall,
547  const dumpi_perfinfo *perf, void *uarg);
548  static int
549  on_MPI_Comm_rank(const dumpi_comm_rank *prm, uint16_t thread,
550  const dumpi_time *cpu, const dumpi_time *wall,
551  const dumpi_perfinfo *perf, void *uarg);
552  static int
553  on_MPI_Comm_compare(const dumpi_comm_compare *prm, uint16_t thread,
554  const dumpi_time *cpu, const dumpi_time *wall,
555  const dumpi_perfinfo *perf, void *uarg);
556  static int
557  on_MPI_Comm_dup(const dumpi_comm_dup *prm, uint16_t thread,
558  const dumpi_time *cpu, const dumpi_time *wall,
559  const dumpi_perfinfo *perf, void *uarg);
560  static int
561  on_MPI_Comm_create(const dumpi_comm_create *prm, uint16_t thread,
562  const dumpi_time *cpu, const dumpi_time *wall,
563  const dumpi_perfinfo *perf, void *uarg);
564  static int
565  on_MPI_Comm_split(const dumpi_comm_split *prm, uint16_t thread,
566  const dumpi_time *cpu, const dumpi_time *wall,
567  const dumpi_perfinfo *perf, void *uarg);
568  static int
569  on_MPI_Comm_free(const dumpi_comm_free *prm, uint16_t thread,
570  const dumpi_time *cpu, const dumpi_time *wall,
571  const dumpi_perfinfo *perf, void *uarg);
572  static int
573  on_MPI_Comm_test_inter(const dumpi_comm_test_inter *prm, uint16_t thread,
574  const dumpi_time *cpu, const dumpi_time *wall,
575  const dumpi_perfinfo *perf, void *uarg);
576  static int
577  on_MPI_Comm_remote_size(const dumpi_comm_remote_size *prm, uint16_t thread,
578  const dumpi_time *cpu, const dumpi_time *wall,
579  const dumpi_perfinfo *perf, void *uarg);
580  static int
581  on_MPI_Comm_remote_group(const dumpi_comm_remote_group *prm, uint16_t thread,
582  const dumpi_time *cpu, const dumpi_time *wall,
583  const dumpi_perfinfo *perf, void *uarg);
584  static int
585  on_MPI_Intercomm_create(const dumpi_intercomm_create *prm, uint16_t thread,
586  const dumpi_time *cpu, const dumpi_time *wall,
587  const dumpi_perfinfo *perf, void *uarg);
588  static int
589  on_MPI_Intercomm_merge(const dumpi_intercomm_merge *prm, uint16_t thread,
590  const dumpi_time *cpu, const dumpi_time *wall,
591  const dumpi_perfinfo *perf, void *uarg);
592  static int
593  on_MPI_Keyval_create(const dumpi_keyval_create *prm, uint16_t thread,
594  const dumpi_time *cpu, const dumpi_time *wall,
595  const dumpi_perfinfo *perf, void *uarg);
596  static int
597  on_MPI_Keyval_free(const dumpi_keyval_free *prm, uint16_t thread,
598  const dumpi_time *cpu, const dumpi_time *wall,
599  const dumpi_perfinfo *perf, void *uarg);
600  static int
601  on_MPI_Attr_put(const dumpi_attr_put *prm, uint16_t thread,
602  const dumpi_time *cpu, const dumpi_time *wall,
603  const dumpi_perfinfo *perf, void *uarg);
604  static int
605  on_MPI_Attr_get(const dumpi_attr_get *prm, uint16_t thread,
606  const dumpi_time *cpu, const dumpi_time *wall,
607  const dumpi_perfinfo *perf, void *uarg);
608  static int
609  on_MPI_Attr_delete(const dumpi_attr_delete *prm, uint16_t thread,
610  const dumpi_time *cpu, const dumpi_time *wall,
611  const dumpi_perfinfo *perf, void *uarg);
612  static int
613  on_MPI_Topo_test(const dumpi_topo_test *prm, uint16_t thread,
614  const dumpi_time *cpu, const dumpi_time *wall,
615  const dumpi_perfinfo *perf, void *uarg);
616  static int
617  on_MPI_Cart_create(const dumpi_cart_create *prm, uint16_t thread,
618  const dumpi_time *cpu, const dumpi_time *wall,
619  const dumpi_perfinfo *perf, void *uarg);
620  static int
621  on_MPI_Dims_create(const dumpi_dims_create *prm, uint16_t thread,
622  const dumpi_time *cpu, const dumpi_time *wall,
623  const dumpi_perfinfo *perf, void *uarg);
624  static int
625  on_MPI_Graph_create(const dumpi_graph_create *prm, uint16_t thread,
626  const dumpi_time *cpu, const dumpi_time *wall,
627  const dumpi_perfinfo *perf, void *uarg);
628  static int
629  on_MPI_Graphdims_get(const dumpi_graphdims_get *prm, uint16_t thread,
630  const dumpi_time *cpu, const dumpi_time *wall,
631  const dumpi_perfinfo *perf, void *uarg);
632  static int
633  on_MPI_Graph_get(const dumpi_graph_get *prm, uint16_t thread,
634  const dumpi_time *cpu, const dumpi_time *wall,
635  const dumpi_perfinfo *perf, void *uarg);
636  static int
637  on_MPI_Cartdim_get(const dumpi_cartdim_get *prm, uint16_t thread,
638  const dumpi_time *cpu, const dumpi_time *wall,
639  const dumpi_perfinfo *perf, void *uarg);
640  static int
641  on_MPI_Cart_get(const dumpi_cart_get *prm, uint16_t thread,
642  const dumpi_time *cpu, const dumpi_time *wall,
643  const dumpi_perfinfo *perf, void *uarg);
644  static int
645  on_MPI_Cart_rank(const dumpi_cart_rank *prm, uint16_t thread,
646  const dumpi_time *cpu, const dumpi_time *wall,
647  const dumpi_perfinfo *perf, void *uarg);
648  static int
649  on_MPI_Cart_coords(const dumpi_cart_coords *prm, uint16_t thread,
650  const dumpi_time *cpu, const dumpi_time *wall,
651  const dumpi_perfinfo *perf, void *uarg);
652  static int
653  on_MPI_Graph_neighbors_count(const dumpi_graph_neighbors_count *prm,
654  uint16_t thread,
655  const dumpi_time *cpu, const dumpi_time *wall,
656  const dumpi_perfinfo *perf,void *uarg);
657  static int
658  on_MPI_Graph_neighbors(const dumpi_graph_neighbors *prm, uint16_t thread,
659  const dumpi_time *cpu, const dumpi_time *wall,
660  const dumpi_perfinfo *perf, void *uarg);
661  static int
662  on_MPI_Cart_shift(const dumpi_cart_shift *prm, uint16_t thread,
663  const dumpi_time *cpu, const dumpi_time *wall,
664  const dumpi_perfinfo *perf, void *uarg);
665  static int
666  on_MPI_Cart_sub(const dumpi_cart_sub *prm, uint16_t thread,
667  const dumpi_time *cpu, const dumpi_time *wall,
668  const dumpi_perfinfo *perf, void *uarg);
669  static int
670  on_MPI_Cart_map(const dumpi_cart_map *prm, uint16_t thread,
671  const dumpi_time *cpu, const dumpi_time *wall,
672  const dumpi_perfinfo *perf, void *uarg);
673  static int
674  on_MPI_Graph_map(const dumpi_graph_map *prm, uint16_t thread,
675  const dumpi_time *cpu, const dumpi_time *wall,
676  const dumpi_perfinfo *perf, void *uarg);
677  static int
678  on_MPI_Get_processor_name(const dumpi_get_processor_name *prm, uint16_t thread,
679  const dumpi_time *cpu, const dumpi_time *wall,
680  const dumpi_perfinfo *perf, void *uarg);
681  static int
682  on_MPI_Get_version(const dumpi_get_version *prm, uint16_t thread,
683  const dumpi_time *cpu, const dumpi_time *wall,
684  const dumpi_perfinfo *perf, void *uarg);
685  static int
686  on_MPI_Errhandler_create(const dumpi_errhandler_create *prm, uint16_t thread,
687  const dumpi_time *cpu, const dumpi_time *wall,
688  const dumpi_perfinfo *perf, void *uarg);
689  static int
690  on_MPI_Errhandler_set(const dumpi_errhandler_set *prm, uint16_t thread,
691  const dumpi_time *cpu, const dumpi_time *wall,
692  const dumpi_perfinfo *perf, void *uarg);
693  static int
694  on_MPI_Errhandler_get(const dumpi_errhandler_get *prm, uint16_t thread,
695  const dumpi_time *cpu, const dumpi_time *wall,
696  const dumpi_perfinfo *perf, void *uarg);
697  static int
698  on_MPI_Errhandler_free(const dumpi_errhandler_free *prm, uint16_t thread,
699  const dumpi_time *cpu, const dumpi_time *wall,
700  const dumpi_perfinfo *perf, void *uarg);
701  static int
702  on_MPI_Error_string(const dumpi_error_string *prm, uint16_t thread,
703  const dumpi_time *cpu, const dumpi_time *wall,
704  const dumpi_perfinfo *perf, void *uarg);
705  static int
706  on_MPI_Error_class(const dumpi_error_class *prm, uint16_t thread,
707  const dumpi_time *cpu, const dumpi_time *wall,
708  const dumpi_perfinfo *perf, void *uarg);
709  static int
710  on_MPI_Wtime(const dumpi_wtime *prm, uint16_t thread,
711  const dumpi_time *cpu, const dumpi_time *wall,
712  const dumpi_perfinfo *perf, void *uarg);
713  static int
714  on_MPI_Wtick(const dumpi_wtick *prm, uint16_t thread,
715  const dumpi_time *cpu, const dumpi_time *wall,
716  const dumpi_perfinfo *perf, void *uarg);
717  static int
718  on_MPI_Init(const dumpi_init *prm, uint16_t thread,
719  const dumpi_time *cpu, const dumpi_time *wall,
720  const dumpi_perfinfo *perf, void *uarg);
721  static int
722  on_MPI_Finalize(const dumpi_finalize *prm, uint16_t thread,
723  const dumpi_time *cpu, const dumpi_time *wall,
724  const dumpi_perfinfo *perf, void *uarg);
725  static int
726  on_MPI_Initialized(const dumpi_initialized *prm, uint16_t thread,
727  const dumpi_time *cpu, const dumpi_time *wall,
728  const dumpi_perfinfo *perf, void *uarg);
729  static int
730  on_MPI_Abort(const dumpi_abort *prm, uint16_t thread,
731  const dumpi_time *cpu, const dumpi_time *wall,
732  const dumpi_perfinfo *perf, void *uarg);
733  static int
734  on_MPI_Close_port(const dumpi_close_port *prm, uint16_t thread,
735  const dumpi_time *cpu, const dumpi_time *wall,
736  const dumpi_perfinfo *perf, void *uarg);
737  static int
738  on_MPI_Comm_accept(const dumpi_comm_accept *prm, uint16_t thread,
739  const dumpi_time *cpu, const dumpi_time *wall,
740  const dumpi_perfinfo *perf, void *uarg);
741  static int
742  on_MPI_Comm_connect(const dumpi_comm_connect *prm, uint16_t thread,
743  const dumpi_time *cpu, const dumpi_time *wall,
744  const dumpi_perfinfo *perf, void *uarg);
745  static int
746  on_MPI_Comm_disconnect(const dumpi_comm_disconnect *prm, uint16_t thread,
747  const dumpi_time *cpu, const dumpi_time *wall,
748  const dumpi_perfinfo *perf, void *uarg);
749  static int
750  on_MPI_Comm_get_parent(const dumpi_comm_get_parent *prm, uint16_t thread,
751  const dumpi_time *cpu, const dumpi_time *wall,
752  const dumpi_perfinfo *perf, void *uarg);
753  static int
754  on_MPI_Comm_join(const dumpi_comm_join *prm, uint16_t thread,
755  const dumpi_time *cpu, const dumpi_time *wall,
756  const dumpi_perfinfo *perf, void *uarg);
757  static int
758  on_MPI_Comm_spawn(const dumpi_comm_spawn *prm, uint16_t thread,
759  const dumpi_time *cpu, const dumpi_time *wall,
760  const dumpi_perfinfo *perf, void *uarg);
761  static int
762  on_MPI_Comm_spawn_multiple(const dumpi_comm_spawn_multiple *prm,
763  uint16_t thread,
764  const dumpi_time *cpu, const dumpi_time *wall,
765  const dumpi_perfinfo *perf, void *uarg);
766  static int
767  on_MPI_Lookup_name(const dumpi_lookup_name *prm, uint16_t thread,
768  const dumpi_time *cpu, const dumpi_time *wall,
769  const dumpi_perfinfo *perf, void *uarg);
770  static int
771  on_MPI_Open_port(const dumpi_open_port *prm, uint16_t thread,
772  const dumpi_time *cpu, const dumpi_time *wall,
773  const dumpi_perfinfo *perf, void *uarg);
774  static int
775  on_MPI_Publish_name(const dumpi_publish_name *prm, uint16_t thread,
776  const dumpi_time *cpu, const dumpi_time *wall,
777  const dumpi_perfinfo *perf, void *uarg);
778  static int
779  on_MPI_Unpublish_name(const dumpi_unpublish_name *prm, uint16_t thread,
780  const dumpi_time *cpu, const dumpi_time *wall,
781  const dumpi_perfinfo *perf, void *uarg);
782  static int
783  on_MPI_Accumulate(const dumpi_accumulate *prm, uint16_t thread,
784  const dumpi_time *cpu, const dumpi_time *wall,
785  const dumpi_perfinfo *perf, void *uarg);
786  static int
787  on_MPI_Get(const dumpi_get *prm, uint16_t thread,
788  const dumpi_time *cpu, const dumpi_time *wall,
789  const dumpi_perfinfo *perf, void *uarg);
790  static int
791  on_MPI_Put(const dumpi_put *prm, uint16_t thread,
792  const dumpi_time *cpu, const dumpi_time *wall,
793  const dumpi_perfinfo *perf, void *uarg);
794  static int
795  on_MPI_Win_complete(const dumpi_win_complete *prm, uint16_t thread,
796  const dumpi_time *cpu, const dumpi_time *wall,
797  const dumpi_perfinfo *perf, void *uarg);
798  static int
799  on_MPI_Win_create(const dumpi_win_create *prm, uint16_t thread,
800  const dumpi_time *cpu, const dumpi_time *wall,
801  const dumpi_perfinfo *perf, void *uarg);
802  static int
803  on_MPI_Win_fence(const dumpi_win_fence *prm, uint16_t thread,
804  const dumpi_time *cpu, const dumpi_time *wall,
805  const dumpi_perfinfo *perf, void *uarg);
806  static int
807  on_MPI_Win_free(const dumpi_win_free *prm, uint16_t thread,
808  const dumpi_time *cpu, const dumpi_time *wall,
809  const dumpi_perfinfo *perf, void *uarg);
810  static int
811  on_MPI_Win_get_group(const dumpi_win_get_group *prm, uint16_t thread,
812  const dumpi_time *cpu, const dumpi_time *wall,
813  const dumpi_perfinfo *perf, void *uarg);
814  static int
815  on_MPI_Win_lock(const dumpi_win_lock *prm, uint16_t thread,
816  const dumpi_time *cpu, const dumpi_time *wall,
817  const dumpi_perfinfo *perf, void *uarg);
818  static int
819  on_MPI_Win_post(const dumpi_win_post *prm, uint16_t thread,
820  const dumpi_time *cpu, const dumpi_time *wall,
821  const dumpi_perfinfo *perf, void *uarg);
822  static int
823  on_MPI_Win_start(const dumpi_win_start *prm, uint16_t thread,
824  const dumpi_time *cpu, const dumpi_time *wall,
825  const dumpi_perfinfo *perf, void *uarg);
826  static int
827  on_MPI_Win_test(const dumpi_win_test *prm, uint16_t thread,
828  const dumpi_time *cpu, const dumpi_time *wall,
829  const dumpi_perfinfo *perf, void *uarg);
830  static int
831  on_MPI_Win_unlock(const dumpi_win_unlock *prm, uint16_t thread,
832  const dumpi_time *cpu, const dumpi_time *wall,
833  const dumpi_perfinfo *perf, void *uarg);
834  static int
835  on_MPI_Win_wait(const dumpi_win_wait *prm, uint16_t thread,
836  const dumpi_time *cpu, const dumpi_time *wall,
837  const dumpi_perfinfo *perf, void *uarg);
838  static int
839  on_MPI_Alltoallw(const dumpi_alltoallw *prm, uint16_t thread,
840  const dumpi_time *cpu, const dumpi_time *wall,
841  const dumpi_perfinfo *perf, void *uarg);
842  static int
843  on_MPI_Exscan(const dumpi_exscan *prm, uint16_t thread,
844  const dumpi_time *cpu, const dumpi_time *wall,
845  const dumpi_perfinfo *perf, void *uarg);
846  static int
847  on_MPI_Add_error_class(const dumpi_add_error_class *prm, uint16_t thread,
848  const dumpi_time *cpu, const dumpi_time *wall,
849  const dumpi_perfinfo *perf, void *uarg);
850  static int
851  on_MPI_Add_error_code(const dumpi_add_error_code *prm, uint16_t thread,
852  const dumpi_time *cpu, const dumpi_time *wall,
853  const dumpi_perfinfo *perf, void *uarg);
854  static int
855  on_MPI_Add_error_string(const dumpi_add_error_string *prm, uint16_t thread,
856  const dumpi_time *cpu, const dumpi_time *wall,
857  const dumpi_perfinfo *perf, void *uarg);
858  static int
859  on_MPI_Comm_call_errhandler(const dumpi_comm_call_errhandler *prm,
860  uint16_t thread,
861  const dumpi_time *cpu, const dumpi_time *wall,
862  const dumpi_perfinfo *perf, void *uarg);
863  static int
864  on_MPI_Comm_create_keyval(const dumpi_comm_create_keyval *prm, uint16_t thread,
865  const dumpi_time *cpu, const dumpi_time *wall,
866  const dumpi_perfinfo *perf, void *uarg);
867  static int
868  on_MPI_Comm_delete_attr(const dumpi_comm_delete_attr *prm, uint16_t thread,
869  const dumpi_time *cpu, const dumpi_time *wall,
870  const dumpi_perfinfo *perf, void *uarg);
871  static int
872  on_MPI_Comm_free_keyval(const dumpi_comm_free_keyval *prm, uint16_t thread,
873  const dumpi_time *cpu, const dumpi_time *wall,
874  const dumpi_perfinfo *perf, void *uarg);
875  static int
876  on_MPI_Comm_get_attr(const dumpi_comm_get_attr *prm, uint16_t thread,
877  const dumpi_time *cpu, const dumpi_time *wall,
878  const dumpi_perfinfo *perf, void *uarg);
879  static int
880  on_MPI_Comm_get_name(const dumpi_comm_get_name *prm, uint16_t thread,
881  const dumpi_time *cpu, const dumpi_time *wall,
882  const dumpi_perfinfo *perf, void *uarg);
883  static int
884  on_MPI_Comm_set_attr(const dumpi_comm_set_attr *prm, uint16_t thread,
885  const dumpi_time *cpu, const dumpi_time *wall,
886  const dumpi_perfinfo *perf, void *uarg);
887  static int
888  on_MPI_Comm_set_name(const dumpi_comm_set_name *prm, uint16_t thread,
889  const dumpi_time *cpu, const dumpi_time *wall,
890  const dumpi_perfinfo *perf, void *uarg);
891  static int
892  on_MPI_File_call_errhandler(const dumpi_file_call_errhandler *prm,
893  uint16_t thread,
894  const dumpi_time *cpu, const dumpi_time *wall,
895  const dumpi_perfinfo *perf, void *uarg);
896  static int
897  on_MPI_Grequest_complete(const dumpi_grequest_complete *prm, uint16_t thread,
898  const dumpi_time *cpu, const dumpi_time *wall,
899  const dumpi_perfinfo *perf, void *uarg);
900  static int
901  on_MPI_Grequest_start(const dumpi_grequest_start *prm, uint16_t thread,
902  const dumpi_time *cpu, const dumpi_time *wall,
903  const dumpi_perfinfo *perf, void *uarg);
904  static int
905  on_MPI_Init_thread(const dumpi_init_thread *prm, uint16_t thread,
906  const dumpi_time *cpu, const dumpi_time *wall,
907  const dumpi_perfinfo *perf, void *uarg);
908  static int
909  on_MPI_Is_thread_main(const dumpi_is_thread_main *prm, uint16_t thread,
910  const dumpi_time *cpu, const dumpi_time *wall,
911  const dumpi_perfinfo *perf, void *uarg);
912  static int
913  on_MPI_Query_thread(const dumpi_query_thread *prm, uint16_t thread,
914  const dumpi_time *cpu, const dumpi_time *wall,
915  const dumpi_perfinfo *perf, void *uarg);
916  static int
917  on_MPI_Status_set_cancelled(const dumpi_status_set_cancelled *prm,
918  uint16_t thread,
919  const dumpi_time *cpu, const dumpi_time *wall,
920  const dumpi_perfinfo *perf, void *uarg);
921  static int
922  on_MPI_Status_set_elements(const dumpi_status_set_elements *prm,
923  uint16_t thread,
924  const dumpi_time *cpu, const dumpi_time *wall,
925  const dumpi_perfinfo *perf, void *uarg);
926  static int
927  on_MPI_Type_create_keyval(const dumpi_type_create_keyval *prm, uint16_t thread,
928  const dumpi_time *cpu, const dumpi_time *wall,
929  const dumpi_perfinfo *perf, void *uarg);
930  static int
931  on_MPI_Type_delete_attr(const dumpi_type_delete_attr *prm, uint16_t thread,
932  const dumpi_time *cpu, const dumpi_time *wall,
933  const dumpi_perfinfo *perf, void *uarg);
934  static int
935  on_MPI_Type_dup(const dumpi_type_dup *prm, uint16_t thread,
936  const dumpi_time *cpu, const dumpi_time *wall,
937  const dumpi_perfinfo *perf, void *uarg);
938  static int
939  on_MPI_Type_free_keyval(const dumpi_type_free_keyval *prm, uint16_t thread,
940  const dumpi_time *cpu, const dumpi_time *wall,
941  const dumpi_perfinfo *perf, void *uarg);
942  static int
943  on_MPI_Type_get_attr(const dumpi_type_get_attr *prm, uint16_t thread,
944  const dumpi_time *cpu, const dumpi_time *wall,
945  const dumpi_perfinfo *perf, void *uarg);
946  static int
947  on_MPI_Type_get_contents(const dumpi_type_get_contents *prm, uint16_t thread,
948  const dumpi_time *cpu, const dumpi_time *wall,
949  const dumpi_perfinfo *perf, void *uarg);
950  static int
951  on_MPI_Type_get_envelope(const dumpi_type_get_envelope *prm, uint16_t thread,
952  const dumpi_time *cpu, const dumpi_time *wall,
953  const dumpi_perfinfo *perf, void *uarg);
954  static int
955  on_MPI_Type_get_name(const dumpi_type_get_name *prm, uint16_t thread,
956  const dumpi_time *cpu, const dumpi_time *wall,
957  const dumpi_perfinfo *perf, void *uarg);
958  static int
959  on_MPI_Type_set_attr(const dumpi_type_set_attr *prm, uint16_t thread,
960  const dumpi_time *cpu, const dumpi_time *wall,
961  const dumpi_perfinfo *perf, void *uarg);
962  static int
963  on_MPI_Type_set_name(const dumpi_type_set_name *prm, uint16_t thread,
964  const dumpi_time *cpu, const dumpi_time *wall,
965  const dumpi_perfinfo *perf, void *uarg);
966  static int
967  on_MPI_Type_match_size(const dumpi_type_match_size *prm, uint16_t thread,
968  const dumpi_time *cpu, const dumpi_time *wall,
969  const dumpi_perfinfo *perf, void *uarg);
970  static int
971  on_MPI_Win_call_errhandler(const dumpi_win_call_errhandler *prm,
972  uint16_t thread,
973  const dumpi_time *cpu, const dumpi_time *wall,
974  const dumpi_perfinfo *perf, void *uarg);
975  static int
976  on_MPI_Win_create_keyval(const dumpi_win_create_keyval *prm, uint16_t thread,
977  const dumpi_time *cpu, const dumpi_time *wall,
978  const dumpi_perfinfo *perf, void *uarg);
979  static int
980  on_MPI_Win_delete_attr(const dumpi_win_delete_attr *prm, uint16_t thread,
981  const dumpi_time *cpu, const dumpi_time *wall,
982  const dumpi_perfinfo *perf, void *uarg);
983  static int
984  on_MPI_Win_free_keyval(const dumpi_win_free_keyval *prm, uint16_t thread,
985  const dumpi_time *cpu, const dumpi_time *wall,
986  const dumpi_perfinfo *perf, void *uarg);
987  static int
988  on_MPI_Win_get_attr(const dumpi_win_get_attr *prm, uint16_t thread,
989  const dumpi_time *cpu, const dumpi_time *wall,
990  const dumpi_perfinfo *perf, void *uarg);
991  static int
992  on_MPI_Win_get_name(const dumpi_win_get_name *prm, uint16_t thread,
993  const dumpi_time *cpu, const dumpi_time *wall,
994  const dumpi_perfinfo *perf, void *uarg);
995  static int
996  on_MPI_Win_set_attr(const dumpi_win_set_attr *prm, uint16_t thread,
997  const dumpi_time *cpu, const dumpi_time *wall,
998  const dumpi_perfinfo *perf, void *uarg);
999  static int
1000  on_MPI_Win_set_name(const dumpi_win_set_name *prm, uint16_t thread,
1001  const dumpi_time *cpu, const dumpi_time *wall,
1002  const dumpi_perfinfo *perf, void *uarg);
1003  static int
1004  on_MPI_Alloc_mem(const dumpi_alloc_mem *prm, uint16_t thread,
1005  const dumpi_time *cpu, const dumpi_time *wall,
1006  const dumpi_perfinfo *perf, void *uarg);
1007  static int
1008  on_MPI_Comm_create_errhandler(const dumpi_comm_create_errhandler *prm,
1009  uint16_t thread,
1010  const dumpi_time *cpu, const dumpi_time *wall,
1011  const dumpi_perfinfo *perf, void *uarg);
1012  static int
1013  on_MPI_Comm_get_errhandler(const dumpi_comm_get_errhandler *prm,
1014  uint16_t thread,
1015  const dumpi_time *cpu, const dumpi_time *wall,
1016  const dumpi_perfinfo *perf, void *uarg);
1017  static int
1018  on_MPI_Comm_set_errhandler(const dumpi_comm_set_errhandler *prm,
1019  uint16_t thread,
1020  const dumpi_time *cpu, const dumpi_time *wall,
1021  const dumpi_perfinfo *perf, void *uarg);
1022  static int
1023  on_MPI_File_create_errhandler(const dumpi_file_create_errhandler *prm,
1024  uint16_t thread,
1025  const dumpi_time *cpu, const dumpi_time *wall,
1026  const dumpi_perfinfo *perf, void *uarg);
1027  static int
1028  on_MPI_File_get_errhandler(const dumpi_file_get_errhandler *prm,
1029  uint16_t thread,
1030  const dumpi_time *cpu, const dumpi_time *wall,
1031  const dumpi_perfinfo *perf, void *uarg);
1032  static int
1033  on_MPI_File_set_errhandler(const dumpi_file_set_errhandler *prm,
1034  uint16_t thread,
1035  const dumpi_time *cpu, const dumpi_time *wall,
1036  const dumpi_perfinfo *perf, void *uarg);
1037  static int
1038  on_MPI_Finalized(const dumpi_finalized *prm, uint16_t thread,
1039  const dumpi_time *cpu, const dumpi_time *wall,
1040  const dumpi_perfinfo *perf, void *uarg);
1041  static int
1042  on_MPI_Free_mem(const dumpi_free_mem *prm, uint16_t thread,
1043  const dumpi_time *cpu, const dumpi_time *wall,
1044  const dumpi_perfinfo *perf, void *uarg);
1045  static int
1046  on_MPI_Get_address(const dumpi_get_address *prm, uint16_t thread,
1047  const dumpi_time *cpu, const dumpi_time *wall,
1048  const dumpi_perfinfo *perf, void *uarg);
1049  static int
1050  on_MPI_Info_create(const dumpi_info_create *prm, uint16_t thread,
1051  const dumpi_time *cpu, const dumpi_time *wall,
1052  const dumpi_perfinfo *perf, void *uarg);
1053  static int
1054  on_MPI_Info_delete(const dumpi_info_delete *prm, uint16_t thread,
1055  const dumpi_time *cpu, const dumpi_time *wall,
1056  const dumpi_perfinfo *perf, void *uarg);
1057  static int
1058  on_MPI_Info_dup(const dumpi_info_dup *prm, uint16_t thread,
1059  const dumpi_time *cpu, const dumpi_time *wall,
1060  const dumpi_perfinfo *perf, void *uarg);
1061  static int
1062  on_MPI_Info_free(const dumpi_info_free *prm, uint16_t thread,
1063  const dumpi_time *cpu, const dumpi_time *wall,
1064  const dumpi_perfinfo *perf, void *uarg);
1065  static int
1066  on_MPI_Info_get(const dumpi_info_get *prm, uint16_t thread,
1067  const dumpi_time *cpu, const dumpi_time *wall,
1068  const dumpi_perfinfo *perf, void *uarg);
1069  static int
1070  on_MPI_Info_get_nkeys(const dumpi_info_get_nkeys *prm, uint16_t thread,
1071  const dumpi_time *cpu, const dumpi_time *wall,
1072  const dumpi_perfinfo *perf, void *uarg);
1073  static int
1074  on_MPI_Info_get_nthkey(const dumpi_info_get_nthkey *prm, uint16_t thread,
1075  const dumpi_time *cpu, const dumpi_time *wall,
1076  const dumpi_perfinfo *perf, void *uarg);
1077  static int
1078  on_MPI_Info_get_valuelen(const dumpi_info_get_valuelen *prm, uint16_t thread,
1079  const dumpi_time *cpu, const dumpi_time *wall,
1080  const dumpi_perfinfo *perf, void *uarg);
1081  static int
1082  on_MPI_Info_set(const dumpi_info_set *prm, uint16_t thread,
1083  const dumpi_time *cpu, const dumpi_time *wall,
1084  const dumpi_perfinfo *perf, void *uarg);
1085  static int
1086  on_MPI_Pack_external(const dumpi_pack_external *prm, uint16_t thread,
1087  const dumpi_time *cpu, const dumpi_time *wall,
1088  const dumpi_perfinfo *perf, void *uarg);
1089  static int
1090  on_MPI_Pack_external_size(const dumpi_pack_external_size *prm, uint16_t thread,
1091  const dumpi_time *cpu, const dumpi_time *wall,
1092  const dumpi_perfinfo *perf, void *uarg);
1093  static int
1094  on_MPI_Request_get_status(const dumpi_request_get_status *prm, uint16_t thread,
1095  const dumpi_time *cpu, const dumpi_time *wall,
1096  const dumpi_perfinfo *perf, void *uarg);
1097  static int
1098  on_MPI_Type_create_darray(const dumpi_type_create_darray *prm, uint16_t thread,
1099  const dumpi_time *cpu, const dumpi_time *wall,
1100  const dumpi_perfinfo *perf, void *uarg);
1101  static int
1102  on_MPI_Type_create_hindexed(const dumpi_type_create_hindexed *prm,
1103  uint16_t thread,
1104  const dumpi_time *cpu, const dumpi_time *wall,
1105  const dumpi_perfinfo *perf, void *uarg);
1106  static int
1107  on_MPI_Type_create_hvector(const dumpi_type_create_hvector *prm,
1108  uint16_t thread,
1109  const dumpi_time *cpu, const dumpi_time *wall,
1110  const dumpi_perfinfo *perf, void *uarg);
1111  static int
1112  on_MPI_Type_create_indexed_block(const dumpi_type_create_indexed_block *prm,
1113  uint16_t thread,
1114  const dumpi_time *cpu, const dumpi_time *wall,
1115  const dumpi_perfinfo *perf, void *uarg);
1116  static int
1117  on_MPI_Type_create_resized(const dumpi_type_create_resized *prm,
1118  uint16_t thread,
1119  const dumpi_time *cpu, const dumpi_time *wall,
1120  const dumpi_perfinfo *perf, void *uarg);
1121  static int
1122  on_MPI_Type_create_struct(const dumpi_type_create_struct *prm, uint16_t thread,
1123  const dumpi_time *cpu, const dumpi_time *wall,
1124  const dumpi_perfinfo *perf, void *uarg);
1125  static int
1126  on_MPI_Type_create_subarray(const dumpi_type_create_subarray *prm,
1127  uint16_t thread,
1128  const dumpi_time *cpu, const dumpi_time *wall,
1129  const dumpi_perfinfo *perf, void *uarg);
1130  static int
1131  on_MPI_Type_get_extent(const dumpi_type_get_extent *prm, uint16_t thread,
1132  const dumpi_time *cpu, const dumpi_time *wall,
1133  const dumpi_perfinfo *perf, void *uarg);
1134  static int
1135  on_MPI_Type_get_true_extent(const dumpi_type_get_true_extent *prm,
1136  uint16_t thread,
1137  const dumpi_time *cpu, const dumpi_time *wall,
1138  const dumpi_perfinfo *perf, void *uarg);
1139  static int
1140  on_MPI_Unpack_external(const dumpi_unpack_external *prm, uint16_t thread,
1141  const dumpi_time *cpu, const dumpi_time *wall,
1142  const dumpi_perfinfo *perf, void *uarg);
1143  static int
1144  on_MPI_Win_create_errhandler(const dumpi_win_create_errhandler *prm,
1145  uint16_t thread,
1146  const dumpi_time *cpu, const dumpi_time *wall,
1147  const dumpi_perfinfo *perf, void *uarg);
1148  static int
1149  on_MPI_Win_get_errhandler(const dumpi_win_get_errhandler *prm, uint16_t thread,
1150  const dumpi_time *cpu, const dumpi_time *wall,
1151  const dumpi_perfinfo *perf, void *uarg);
1152  static int
1153  on_MPI_Win_set_errhandler(const dumpi_win_set_errhandler *prm, uint16_t thread,
1154  const dumpi_time *cpu, const dumpi_time *wall,
1155  const dumpi_perfinfo *perf, void *uarg);
1156  static int
1157  on_MPI_File_open(const dumpi_file_open *prm, uint16_t thread,
1158  const dumpi_time *cpu, const dumpi_time *wall,
1159  const dumpi_perfinfo *perf, void *uarg);
1160  static int
1161  on_MPI_File_close(const dumpi_file_close *prm, uint16_t thread,
1162  const dumpi_time *cpu, const dumpi_time *wall,
1163  const dumpi_perfinfo *perf, void *uarg);
1164  static int
1165  on_MPI_File_delete(const dumpi_file_delete *prm, uint16_t thread,
1166  const dumpi_time *cpu, const dumpi_time *wall,
1167  const dumpi_perfinfo *perf, void *uarg);
1168  static int
1169  on_MPI_File_set_size(const dumpi_file_set_size *prm, uint16_t thread,
1170  const dumpi_time *cpu, const dumpi_time *wall,
1171  const dumpi_perfinfo *perf, void *uarg);
1172  static int
1173  on_MPI_File_preallocate(const dumpi_file_preallocate *prm, uint16_t thread,
1174  const dumpi_time *cpu, const dumpi_time *wall,
1175  const dumpi_perfinfo *perf, void *uarg);
1176  static int
1177  on_MPI_File_get_size(const dumpi_file_get_size *prm, uint16_t thread,
1178  const dumpi_time *cpu, const dumpi_time *wall,
1179  const dumpi_perfinfo *perf, void *uarg);
1180  static int
1181  on_MPI_File_get_group(const dumpi_file_get_group *prm, uint16_t thread,
1182  const dumpi_time *cpu, const dumpi_time *wall,
1183  const dumpi_perfinfo *perf, void *uarg);
1184  static int
1185  on_MPI_File_get_amode(const dumpi_file_get_amode *prm, uint16_t thread,
1186  const dumpi_time *cpu, const dumpi_time *wall,
1187  const dumpi_perfinfo *perf, void *uarg);
1188  static int
1189  on_MPI_File_set_info(const dumpi_file_set_info *prm, uint16_t thread,
1190  const dumpi_time *cpu, const dumpi_time *wall,
1191  const dumpi_perfinfo *perf, void *uarg);
1192  static int
1193  on_MPI_File_get_info(const dumpi_file_get_info *prm, uint16_t thread,
1194  const dumpi_time *cpu, const dumpi_time *wall,
1195  const dumpi_perfinfo *perf, void *uarg);
1196  static int
1197  on_MPI_File_set_view(const dumpi_file_set_view *prm, uint16_t thread,
1198  const dumpi_time *cpu, const dumpi_time *wall,
1199  const dumpi_perfinfo *perf, void *uarg);
1200  static int
1201  on_MPI_File_get_view(const dumpi_file_get_view *prm, uint16_t thread,
1202  const dumpi_time *cpu, const dumpi_time *wall,
1203  const dumpi_perfinfo *perf, void *uarg);
1204  static int
1205  on_MPI_File_read_at(const dumpi_file_read_at *prm, uint16_t thread,
1206  const dumpi_time *cpu, const dumpi_time *wall,
1207  const dumpi_perfinfo *perf, void *uarg);
1208  static int
1209  on_MPI_File_read_at_all(const dumpi_file_read_at_all *prm, uint16_t thread,
1210  const dumpi_time *cpu, const dumpi_time *wall,
1211  const dumpi_perfinfo *perf, void *uarg);
1212  static int
1213  on_MPI_File_write_at(const dumpi_file_write_at *prm, uint16_t thread,
1214  const dumpi_time *cpu, const dumpi_time *wall,
1215  const dumpi_perfinfo *perf, void *uarg);
1216  static int
1217  on_MPI_File_write_at_all(const dumpi_file_write_at_all *prm, uint16_t thread,
1218  const dumpi_time *cpu, const dumpi_time *wall,
1219  const dumpi_perfinfo *perf, void *uarg);
1220  static int
1221  on_MPI_File_iread_at(const dumpi_file_iread_at *prm, uint16_t thread,
1222  const dumpi_time *cpu, const dumpi_time *wall,
1223  const dumpi_perfinfo *perf, void *uarg);
1224  static int
1225  on_MPI_File_iwrite_at(const dumpi_file_iwrite_at *prm, uint16_t thread,
1226  const dumpi_time *cpu, const dumpi_time *wall,
1227  const dumpi_perfinfo *perf, void *uarg);
1228  static int
1229  on_MPI_File_read(const dumpi_file_read *prm, uint16_t thread,
1230  const dumpi_time *cpu, const dumpi_time *wall,
1231  const dumpi_perfinfo *perf, void *uarg);
1232  static int
1233  on_MPI_File_read_all(const dumpi_file_read_all *prm, uint16_t thread,
1234  const dumpi_time *cpu, const dumpi_time *wall,
1235  const dumpi_perfinfo *perf, void *uarg);
1236  static int
1237  on_MPI_File_write(const dumpi_file_write *prm, uint16_t thread,
1238  const dumpi_time *cpu, const dumpi_time *wall,
1239  const dumpi_perfinfo *perf, void *uarg);
1240  static int
1241  on_MPI_File_write_all(const dumpi_file_write_all *prm, uint16_t thread,
1242  const dumpi_time *cpu, const dumpi_time *wall,
1243  const dumpi_perfinfo *perf, void *uarg);
1244  static int
1245  on_MPI_File_iread(const dumpi_file_iread *prm, uint16_t thread,
1246  const dumpi_time *cpu, const dumpi_time *wall,
1247  const dumpi_perfinfo *perf, void *uarg);
1248  static int
1249  on_MPI_File_iwrite(const dumpi_file_iwrite *prm, uint16_t thread,
1250  const dumpi_time *cpu, const dumpi_time *wall,
1251  const dumpi_perfinfo *perf, void *uarg);
1252  static int
1253  on_MPI_File_seek(const dumpi_file_seek *prm, uint16_t thread,
1254  const dumpi_time *cpu, const dumpi_time *wall,
1255  const dumpi_perfinfo *perf, void *uarg);
1256  static int
1257  on_MPI_File_get_position(const dumpi_file_get_position *prm, uint16_t thread,
1258  const dumpi_time *cpu, const dumpi_time *wall,
1259  const dumpi_perfinfo *perf, void *uarg);
1260  static int
1261  on_MPI_File_get_byte_offset(const dumpi_file_get_byte_offset *prm,
1262  uint16_t thread,
1263  const dumpi_time *cpu, const dumpi_time *wall,
1264  const dumpi_perfinfo *perf, void *uarg);
1265  static int
1266  on_MPI_File_read_shared(const dumpi_file_read_shared *prm, uint16_t thread,
1267  const dumpi_time *cpu, const dumpi_time *wall,
1268  const dumpi_perfinfo *perf, void *uarg);
1269  static int
1270  on_MPI_File_write_shared(const dumpi_file_write_shared *prm, uint16_t thread,
1271  const dumpi_time *cpu, const dumpi_time *wall,
1272  const dumpi_perfinfo *perf, void *uarg);
1273  static int
1274  on_MPI_File_iread_shared(const dumpi_file_iread_shared *prm, uint16_t thread,
1275  const dumpi_time *cpu, const dumpi_time *wall,
1276  const dumpi_perfinfo *perf, void *uarg);
1277  static int
1278  on_MPI_File_iwrite_shared(const dumpi_file_iwrite_shared *prm, uint16_t thread,
1279  const dumpi_time *cpu, const dumpi_time *wall,
1280  const dumpi_perfinfo *perf, void *uarg);
1281  static int
1282  on_MPI_File_read_ordered(const dumpi_file_read_ordered *prm, uint16_t thread,
1283  const dumpi_time *cpu, const dumpi_time *wall,
1284  const dumpi_perfinfo *perf, void *uarg);
1285  static int
1286  on_MPI_File_write_ordered(const dumpi_file_write_ordered *prm, uint16_t thread,
1287  const dumpi_time *cpu, const dumpi_time *wall,
1288  const dumpi_perfinfo *perf, void *uarg);
1289  static int
1290  on_MPI_File_seek_shared(const dumpi_file_seek_shared *prm, uint16_t thread,
1291  const dumpi_time *cpu, const dumpi_time *wall,
1292  const dumpi_perfinfo *perf, void *uarg);
1293  static int
1294  on_MPI_File_get_position_shared(const dumpi_file_get_position_shared *prm,
1295  uint16_t thread,
1296  const dumpi_time *cpu, const dumpi_time *wall,
1297  const dumpi_perfinfo *perf, void *uarg);
1298  static int
1299  on_MPI_File_read_at_all_begin(const dumpi_file_read_at_all_begin *prm,
1300  uint16_t thread,
1301  const dumpi_time *cpu, const dumpi_time *wall,
1302  const dumpi_perfinfo *perf, void *uarg);
1303  static int
1304  on_MPI_File_read_at_all_end(const dumpi_file_read_at_all_end *prm,
1305  uint16_t thread,
1306  const dumpi_time *cpu, const dumpi_time *wall,
1307  const dumpi_perfinfo *perf, void *uarg);
1308  static int
1309  on_MPI_File_write_at_all_begin(const dumpi_file_write_at_all_begin *prm,
1310  uint16_t thread,
1311  const dumpi_time *cpu, const dumpi_time *wall,
1312  const dumpi_perfinfo *perf, void *uarg);
1313  static int
1314  on_MPI_File_write_at_all_end(const dumpi_file_write_at_all_end *prm,
1315  uint16_t thread,
1316  const dumpi_time *cpu, const dumpi_time *wall,
1317  const dumpi_perfinfo *perf,void *uarg);
1318  static int
1319  on_MPI_File_read_all_begin(const dumpi_file_read_all_begin *prm,
1320  uint16_t thread,
1321  const dumpi_time *cpu, const dumpi_time *wall,
1322  const dumpi_perfinfo *perf, void *uarg);
1323  static int
1324  on_MPI_File_read_all_end(const dumpi_file_read_all_end *prm, uint16_t thread,
1325  const dumpi_time *cpu, const dumpi_time *wall,
1326  const dumpi_perfinfo *perf, void *uarg);
1327  static int
1328  on_MPI_File_write_all_begin(const dumpi_file_write_all_begin *prm,
1329  uint16_t thread,
1330  const dumpi_time *cpu, const dumpi_time *wall,
1331  const dumpi_perfinfo *perf, void *uarg);
1332  static int
1333  on_MPI_File_write_all_end(const dumpi_file_write_all_end *prm, uint16_t thread,
1334  const dumpi_time *cpu, const dumpi_time *wall,
1335  const dumpi_perfinfo *perf, void *uarg);
1336  static int
1337  on_MPI_File_read_ordered_begin(const dumpi_file_read_ordered_begin *prm,
1338  uint16_t thread,
1339  const dumpi_time *cpu, const dumpi_time *wall,
1340  const dumpi_perfinfo *perf, void *uarg);
1341  static int
1342  on_MPI_File_read_ordered_end(const dumpi_file_read_ordered_end *prm,
1343  uint16_t thread,
1344  const dumpi_time *cpu, const dumpi_time *wall,
1345  const dumpi_perfinfo *perf, void *uarg);
1346  static int
1347  on_MPI_File_write_ordered_begin(const dumpi_file_write_ordered_begin *prm,
1348  uint16_t thread,
1349  const dumpi_time *cpu, const dumpi_time *wall,
1350  const dumpi_perfinfo *perf, void *uarg);
1351  static int
1352  on_MPI_File_write_ordered_end(const dumpi_file_write_ordered_end *prm,
1353  uint16_t thread,
1354  const dumpi_time *cpu, const dumpi_time *wall,
1355  const dumpi_perfinfo *perf, void *uarg);
1356  static int
1357  on_MPI_File_get_type_extent(const dumpi_file_get_type_extent *prm,
1358  uint16_t thread,
1359  const dumpi_time *cpu, const dumpi_time *wall,
1360  const dumpi_perfinfo *perf, void *uarg);
1361  static int
1362  on_MPI_Register_datarep(const dumpi_register_datarep *prm, uint16_t thread,
1363  const dumpi_time *cpu, const dumpi_time *wall,
1364  const dumpi_perfinfo *perf, void *uarg);
1365  static int
1366  on_MPI_File_set_atomicity(const dumpi_file_set_atomicity *prm, uint16_t thread,
1367  const dumpi_time *cpu, const dumpi_time *wall,
1368  const dumpi_perfinfo *perf, void *uarg);
1369  static int
1370  on_MPI_File_get_atomicity(const dumpi_file_get_atomicity *prm, uint16_t thread,
1371  const dumpi_time *cpu, const dumpi_time *wall,
1372  const dumpi_perfinfo *perf, void *uarg);
1373  static int
1374  on_MPI_File_sync(const dumpi_file_sync *prm, uint16_t thread,
1375  const dumpi_time *cpu, const dumpi_time *wall,
1376  const dumpi_perfinfo *perf, void *uarg);
1377  static int
1378  on_MPIO_Test(const dumpio_test *prm, uint16_t thread,
1379  const dumpi_time *cpu, const dumpi_time *wall,
1380  const dumpi_perfinfo *perf, void *uarg);
1381  static int
1382  on_MPIO_Wait(const dumpio_wait *prm, uint16_t thread,
1383  const dumpi_time *cpu, const dumpi_time *wall,
1384  const dumpi_perfinfo *perf, void *uarg);
1385  static int
1386  on_MPIO_Testall(const dumpio_testall *prm, uint16_t thread,
1387  const dumpi_time *cpu, const dumpi_time *wall,
1388  const dumpi_perfinfo *perf, void *uarg);
1389  static int
1390  on_MPIO_Waitall(const dumpio_waitall *prm, uint16_t thread,
1391  const dumpi_time *cpu, const dumpi_time *wall,
1392  const dumpi_perfinfo *perf, void *uarg);
1393  static int
1394  on_MPIO_Testany(const dumpio_testany *prm, uint16_t thread,
1395  const dumpi_time *cpu, const dumpi_time *wall,
1396  const dumpi_perfinfo *perf, void *uarg);
1397  static int
1398  on_MPIO_Waitany(const dumpio_waitany *prm, uint16_t thread,
1399  const dumpi_time *cpu, const dumpi_time *wall,
1400  const dumpi_perfinfo *perf, void *uarg);
1401  static int
1402  on_MPIO_Waitsome(const dumpio_waitsome *prm, uint16_t thread,
1403  const dumpi_time *cpu, const dumpi_time *wall,
1404  const dumpi_perfinfo *perf, void *uarg);
1405  static int
1406  on_MPIO_Testsome(const dumpio_testsome *prm, uint16_t thread,
1407  const dumpi_time *cpu, const dumpi_time *wall,
1408  const dumpi_perfinfo *perf, void *uarg);
1409 };
1410 
1411 }
1412 
1413 #endif /* SSTMAC_SOFTWARE_SKELETONS_UNDUMPI_PARSEDUMPI_CALLBACKS_H_INCLUDED */
1414 
static int on_MPI_File_write_all_end(const dumpi_file_write_all_end *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_iwrite_at(const dumpi_file_iwrite_at *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Reduce_scatter(const dumpi_reduce_scatter *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_get_view(const dumpi_file_get_view *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
void add_mpigroup(dumpi_group id, MPI_Group comm)
Add a new mpi group.
static int on_MPI_Dims_create(const dumpi_dims_create *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Gatherv(const dumpi_gatherv *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_write_at(const dumpi_file_write_at *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Sendrecv(const dumpi_sendrecv *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Cart_rank(const dumpi_cart_rank *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Status_set_cancelled(const dumpi_status_set_cancelled *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Win_get_attr(const dumpi_win_get_attr *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_read_shared(const dumpi_file_read_shared *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_get_envelope(const dumpi_type_get_envelope *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_set_view(const dumpi_file_set_view *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_read_at_all_begin(const dumpi_file_read_at_all_begin *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Cart_sub(const dumpi_cart_sub *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_compare(const dumpi_comm_compare *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_create_errhandler(const dumpi_comm_create_errhandler *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Intercomm_create(const dumpi_intercomm_create *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_get_errhandler(const dumpi_file_get_errhandler *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_get_atomicity(const dumpi_file_get_atomicity *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_get_amode(const dumpi_file_get_amode *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_create_subarray(const dumpi_type_create_subarray *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Barrier(const dumpi_barrier *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
parsedumpi * parent_
The parent for this callback-driven parser.
static int on_MPI_Comm_get_attr(const dumpi_comm_get_attr *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
MPI_Op get_mpiop(dumpi_op id)
Access an mpi opunicator.
static int on_MPI_Comm_set_errhandler(const dumpi_comm_set_errhandler *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Exscan(const dumpi_exscan *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Waitsome(const dumpi_waitsome *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Graph_neighbors_count(const dumpi_graph_neighbors_count *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Bsend(const dumpi_bsend *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_get_attr(const dumpi_type_get_attr *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Test_cancelled(const dumpi_test_cancelled *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Win_complete(const dumpi_win_complete *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_join(const dumpi_comm_join *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_set_size(const dumpi_file_set_size *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Graph_map(const dumpi_graph_map *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Attr_put(const dumpi_attr_put *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Close_port(const dumpi_close_port *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_read_ordered(const dumpi_file_read_ordered *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_read_at_all_end(const dumpi_file_read_at_all_end *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Wait(const dumpi_wait *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPIO_Test(const dumpio_test *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Win_delete_attr(const dumpi_win_delete_attr *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_ub(const dumpi_type_ub *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_remote_size(const dumpi_comm_remote_size *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_write_ordered_begin(const dumpi_file_write_ordered_begin *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_write_all(const dumpi_file_write_all *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
int get_mpitag(dumpi_tag tag) const
Get an mpi tag.
static int on_MPI_Allgather(const dumpi_allgather *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_rank(const dumpi_comm_rank *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_delete(const dumpi_file_delete *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_set_info(const dumpi_file_set_info *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Issend(const dumpi_issend *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Get_count(const dumpi_get_count *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Errhandler_get(const dumpi_errhandler_get *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
mpiop_map_t mpiop_
MPI operations.
static int on_MPI_File_write_ordered_end(const dumpi_file_write_ordered_end *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Wtick(const dumpi_wtick *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_delete_attr(const dumpi_type_delete_attr *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Keyval_create(const dumpi_keyval_create *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_vector(const dumpi_type_vector *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Ibsend(const dumpi_ibsend *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_get_position_shared(const dumpi_file_get_position_shared *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Scan(const dumpi_scan *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Pack_external(const dumpi_pack_external *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Get_elements(const dumpi_get_elements *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_get_true_extent(const dumpi_type_get_true_extent *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Lookup_name(const dumpi_lookup_name *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Alltoallw(const dumpi_alltoallw *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Win_call_errhandler(const dumpi_win_call_errhandler *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Attr_delete(const dumpi_attr_delete *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int testany_pessimistic(const dumpi_testany *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
Variant implementation of MPI_Testany: Simulator waits for exactly the request matched by the trace f...
static int on_MPI_Comm_get_name(const dumpi_comm_get_name *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Info_get(const dumpi_info_get *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Win_free(const dumpi_win_free *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
void init_maps()
Initialize maps (datatypes etc.). Called at constrution.
static int on_MPI_Allreduce(const dumpi_allreduce *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Win_wait(const dumpi_win_wait *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Rsend(const dumpi_rsend *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_open(const dumpi_file_open *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Win_lock(const dumpi_win_lock *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
std::map< dumpi_group, MPI_Group > mpigroup_map_t
static int on_MPI_Type_get_contents(const dumpi_type_get_contents *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_get_parent(const dumpi_comm_get_parent *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_dup(const dumpi_comm_dup *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPIO_Testsome(const dumpio_testsome *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Bsend_init(const dumpi_bsend_init *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
friend int not_implemented(const char *fxn)
void add_mpitype(dumpi_datatype id, MPI_Datatype mpit)
Add a new mpi type.
static int on_MPI_File_call_errhandler(const dumpi_file_call_errhandler *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
std::vector< int64_t > perfctr_compute_start_
The state of perfcounters when the most recent MPI call was finished.
static int on_MPI_Wtime(const dumpi_wtime *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Scatter(const dumpi_scatter *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Ssend(const dumpi_ssend *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
mpi_api * getmpi()
Access the mpiapi.
static int on_MPI_Irecv(const dumpi_irecv *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Cart_coords(const dumpi_cart_coords *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Gather(const dumpi_gather *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_create_keyval(const dumpi_type_create_keyval *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Win_unlock(const dumpi_win_unlock *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_read_ordered_end(const dumpi_file_read_ordered_end *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
MPI_Comm get_mpicomm(dumpi_comm id)
Access an mpi communicator.
static int on_MPI_Init(const dumpi_init *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Irsend(const dumpi_irsend *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
void store_request(dumpi_request id, MPI_Request request)
Store a single request handle.
static int on_MPI_Win_set_name(const dumpi_win_set_name *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
void erase_mpigroup(dumpi_group id)
Erase the mapping for an mpi group. Does not erase built-in group.
static int on_MPI_Scatterv(const dumpi_scatterv *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_create_hvector(const dumpi_type_create_hvector *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_struct(const dumpi_type_struct *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Test(const dumpi_test *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Start(const dumpi_start *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_get_errhandler(const dumpi_comm_get_errhandler *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Request_free(const dumpi_request_free *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_delete_attr(const dumpi_comm_delete_attr *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_extent(const dumpi_type_extent *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_match_size(const dumpi_type_match_size *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_create_hindexed(const dumpi_type_create_hindexed *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Group_union(const dumpi_group_union *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Alloc_mem(const dumpi_alloc_mem *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_seek(const dumpi_file_seek *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_write_at_all_end(const dumpi_file_write_at_all_end *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Group_compare(const dumpi_group_compare *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
void nullify_requests(int count, const dumpi_request *trace_requests)
static int on_MPI_Startall(const dumpi_startall *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Group_intersection(const dumpi_group_intersection *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_read_at_all(const dumpi_file_read_at_all *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Info_set(const dumpi_info_set *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_preallocate(const dumpi_file_preallocate *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_commit(const dumpi_type_commit *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_accept(const dumpi_comm_accept *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
std::map< dumpi_comm, MPI_Comm > mpicomm_map_t
Map dumpi request identifiers to objects.
static int on_MPI_Group_range_excl(const dumpi_group_range_excl *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_read_all(const dumpi_file_read_all *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_get_size(const dumpi_file_get_size *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_free(const dumpi_type_free *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_set_attr(const dumpi_comm_set_attr *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Is_thread_main(const dumpi_is_thread_main *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_test_inter(const dumpi_comm_test_inter *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_iread(const dumpi_file_iread *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Cancel(const dumpi_cancel *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Group_translate_ranks(const dumpi_group_translate_ranks *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_hindexed(const dumpi_type_hindexed *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
MPI_Request * get_requests(int count, const dumpi_request *dumpireq)
Get a group of request handles.
static int on_MPI_Get_version(const dumpi_get_version *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Error_class(const dumpi_error_class *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Sendrecv_replace(const dumpi_sendrecv_replace *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Open_port(const dumpi_open_port *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
A refactored dumpi parser to read the newer binary-format dumpi trace files.
Definition: parsedumpi.h:32
static int on_MPI_Comm_remote_group(const dumpi_comm_remote_group *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Group_range_incl(const dumpi_group_range_incl *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
if_unimplemented
Accepted actions to be taken for unimplemented functions.
static int on_MPIO_Testall(const dumpio_testall *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
mpicomm_map_t mpicomm_
MPI communicators.
static int on_MPI_Init_thread(const dumpi_init_thread *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_iwrite(const dumpi_file_iwrite *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_create_errhandler(const dumpi_file_create_errhandler *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
void erase_mpicomm(dumpi_comm id)
Erase the mapping for an mpi comm. Does not erase built-in comms.
static int on_MPI_Info_get_nkeys(const dumpi_info_get_nkeys *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int waitany_pessimistic(const dumpi_waitany *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
Variant implemenation of MPI_Waitany: Simulator waits for exactly the request matched by the trace fi...
static int on_MPI_Win_test(const dumpi_win_test *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Cart_create(const dumpi_cart_create *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
std::map< dumpi_request, MPI_Request > request_map_t
static int on_MPI_Finalize(const dumpi_finalize *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Errhandler_free(const dumpi_errhandler_free *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Win_get_name(const dumpi_win_get_name *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Win_post(const dumpi_win_post *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_create_keyval(const dumpi_comm_create_keyval *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_write(const dumpi_file_write *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_spawn_multiple(const dumpi_comm_spawn_multiple *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Keyval_free(const dumpi_keyval_free *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Iprobe(const dumpi_iprobe *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Add_error_class(const dumpi_add_error_class *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Cartdim_get(const dumpi_cartdim_get *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_set_errhandler(const dumpi_file_set_errhandler *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Alltoallv(const dumpi_alltoallv *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_free_keyval(const dumpi_type_free_keyval *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Topo_test(const dumpi_topo_test *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_create_indexed_block(const dumpi_type_create_indexed_block *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_create(const dumpi_comm_create *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
void set_callbacks()
Define all callback routines.
static int on_MPI_Info_get_nthkey(const dumpi_info_get_nthkey *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Waitall(const dumpi_waitall *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_set_name(const dumpi_type_set_name *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
void add_mpicomm(dumpi_comm id, MPI_Comm comm)
Add a new mpi comm.
static int on_MPI_Reduce(const dumpi_reduce *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Graph_get(const dumpi_graph_get *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Graph_neighbors(const dumpi_graph_neighbors *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Win_free_keyval(const dumpi_win_free_keyval *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Errhandler_set(const dumpi_errhandler_set *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_set_atomicity(const dumpi_file_set_atomicity *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_write_at_all(const dumpi_file_write_at_all *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_free_keyval(const dumpi_comm_free_keyval *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Win_set_attr(const dumpi_win_set_attr *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
mpitype_map_t mpitype_
MPI types. Gets pre-populated with all the standard datatypes.
static int on_MPI_Register_datarep(const dumpi_register_datarep *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_write_ordered(const dumpi_file_write_ordered *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Bcast(const dumpi_bcast *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
friend int pass(void *uarg, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, const char *fxn)
static int on_MPI_Group_excl(const dumpi_group_excl *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_read_at(const dumpi_file_read_at *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Send_init(const dumpi_send_init *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Get_address(const dumpi_get_address *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Finalized(const dumpi_finalized *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Publish_name(const dumpi_publish_name *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Cart_get(const dumpi_cart_get *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_get_group(const dumpi_file_get_group *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Attr_get(const dumpi_attr_get *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
Definition: sumi.h:14
static int on_MPI_File_read_all_end(const dumpi_file_read_all_end *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
void parse_stream(const std::string &filename, bool print_progress, double percent_terminate)
Start parsing.
static int on_MPI_Graph_create(const dumpi_graph_create *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Win_create_keyval(const dumpi_win_create_keyval *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Put(const dumpi_put *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_get_extent(const dumpi_type_get_extent *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Win_create(const dumpi_win_create *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
void add_mpiop(dumpi_op id, MPI_Op op)
Add a new mpi op.
static int on_MPI_Pack_size(const dumpi_pack_size *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Buffer_detach(const dumpi_buffer_detach *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_read_ordered_begin(const dumpi_file_read_ordered_begin *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Unpack(const dumpi_unpack *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
MPI_Request * get_request_ptr(dumpi_request id)
Get a single request handle.
static int on_MPI_Isend(const dumpi_isend *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_close(const dumpi_file_close *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Add_error_string(const dumpi_add_error_string *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Alltoall(const dumpi_alltoall *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
mpi_api * mpi()
static int on_MPI_Group_rank(const dumpi_group_rank *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_connect(const dumpi_comm_connect *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_write_shared(const dumpi_file_write_shared *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Win_start(const dumpi_win_start *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Buffer_attach(const dumpi_buffer_attach *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Win_create_errhandler(const dumpi_win_create_errhandler *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_iread_at(const dumpi_file_iread_at *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_iwrite_shared(const dumpi_file_iwrite_shared *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Win_get_group(const dumpi_win_get_group *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Error_string(const dumpi_error_string *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_split(const dumpi_comm_split *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Waitany(const dumpi_waitany *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Probe(const dumpi_probe *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Info_free(const dumpi_info_free *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Get_processor_name(const dumpi_get_processor_name *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPIO_Waitall(const dumpio_waitall *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
void nullify_request(dumpi_request rid)
static int on_MPI_Grequest_complete(const dumpi_grequest_complete *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Get(const dumpi_get *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
MPI_Datatype get_mpitype(dumpi_datatype id)
Access mpi type.
static int on_MPI_Comm_group(const dumpi_comm_group *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Cart_shift(const dumpi_cart_shift *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Graphdims_get(const dumpi_graphdims_get *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_hvector(const dumpi_type_hvector *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPIO_Testany(const dumpio_testany *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Cart_map(const dumpi_cart_map *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Request_get_status(const dumpi_request_get_status *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_contiguous(const dumpi_type_contiguous *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_get_name(const dumpi_type_get_name *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_create_resized(const dumpi_type_create_resized *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
parsedumpi_callbacks(parsedumpi *parent)
Populate callbacks.
static int on_MPI_Status_set_elements(const dumpi_status_set_elements *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Grequest_start(const dumpi_grequest_start *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_create_darray(const dumpi_type_create_darray *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_lb(const dumpi_type_lb *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static libundumpi_callbacks * cbacks_
The callback struct we are using.
static int on_MPI_Recv_init(const dumpi_recv_init *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Op_free(const dumpi_op_free *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Address(const dumpi_address *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Unpack_external(const dumpi_unpack_external *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_set_name(const dumpi_comm_set_name *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Add_error_code(const dumpi_add_error_code *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_indexed(const dumpi_type_indexed *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_dup(const dumpi_type_dup *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_size(const dumpi_comm_size *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Testsome(const dumpi_testsome *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_read_all_begin(const dumpi_file_read_all_begin *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
MPI_Datatype * get_mpitypes(int count, const dumpi_datatype *id)
Access mpi type.
static int on_MPI_Pack(const dumpi_pack *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_spawn(const dumpi_comm_spawn *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
void start_mpi(const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf)
Indicate that we are starting an MPI call.
static int on_MPIO_Wait(const dumpio_wait *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Info_get_valuelen(const dumpi_info_get_valuelen *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Testall(const dumpi_testall *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
void erase_mpitype(dumpi_datatype id)
Erase the mapping for an mpi type. Does not erase built-in mpi types.
static int on_MPI_Group_difference(const dumpi_group_difference *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_get_position(const dumpi_file_get_position *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPIO_Waitany(const dumpio_waitany *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_set_attr(const dumpi_type_set_attr *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_get_type_extent(const dumpi_file_get_type_extent *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_call_errhandler(const dumpi_comm_call_errhandler *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_write_all_begin(const dumpi_file_write_all_begin *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_size(const dumpi_type_size *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
dumpi_clock trace_compute_start_
The dumpi timestamp at which we finished the most recent MPI call.
static int on_MPI_Accumulate(const dumpi_accumulate *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_write_at_all_begin(const dumpi_file_write_at_all_begin *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Group_incl(const dumpi_group_incl *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Type_create_struct(const dumpi_type_create_struct *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Allgatherv(const dumpi_allgatherv *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Testany(const dumpi_testany *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
void erase_mpiop(dumpi_op id)
Erase the mapping for an mpi op. Does not erase built-in operations.
static int on_MPI_File_sync(const dumpi_file_sync *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Intercomm_merge(const dumpi_intercomm_merge *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
Populate C-style callbacks for a libundumpi parser.
static int on_MPI_Info_delete(const dumpi_info_delete *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
void complete_request(dumpi_request id)
Remove a request from the map.
static int on_MPI_Op_create(const dumpi_op_create *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Initialized(const dumpi_initialized *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
int get_mpiid(dumpi_source id)
Get an mpiid.
static int on_MPI_Comm_free(const dumpi_comm_free *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Pack_external_size(const dumpi_pack_external_size *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
std::map< dumpi_op, MPI_Op > mpiop_map_t
static int on_MPI_Info_create(const dumpi_info_create *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Send(const dumpi_send *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Abort(const dumpi_abort *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Win_get_errhandler(const dumpi_win_get_errhandler *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Win_set_errhandler(const dumpi_win_set_errhandler *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
void end_mpi(const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf)
Indicate that we have completed an MPI call.
static int on_MPIO_Waitsome(const dumpio_waitsome *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Comm_disconnect(const dumpi_comm_disconnect *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
std::map< dumpi_datatype, MPI_Datatype > mpitype_map_t
static int on_MPI_File_read(const dumpi_file_read *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Unpublish_name(const dumpi_unpublish_name *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
dumpi_sizeof datatype_sizes_
Dumpi also (as of version 0.6 or so) contains datatype sizes.
static int on_MPI_File_seek_shared(const dumpi_file_seek_shared *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
void complete_requests(Iter begin, Iter end)
Complete multiple requests.
static int on_MPI_File_get_byte_offset(const dumpi_file_get_byte_offset *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_get_info(const dumpi_file_get_info *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Info_dup(const dumpi_info_dup *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Free_mem(const dumpi_free_mem *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Rsend_init(const dumpi_rsend_init *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
MPI_Group get_mpigroup(dumpi_group id)
Access an mpi communicator.
static int on_MPI_Group_free(const dumpi_group_free *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Errhandler_create(const dumpi_errhandler_create *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Recv(const dumpi_recv *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_File_iread_shared(const dumpi_file_iread_shared *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Group_size(const dumpi_group_size *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Ssend_init(const dumpi_ssend_init *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Win_fence(const dumpi_win_fence *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)
static int on_MPI_Query_thread(const dumpi_query_thread *prm, uint16_t thread, const dumpi_time *cpu, const dumpi_time *wall, const dumpi_perfinfo *perf, void *uarg)