OpenMPI  0.1.1
mtl_portals4_flowctl.h
1 /*
2  * Copyright (c) 2012 Sandia National Laboratories. All rights reserved.
3  * $COPYRIGHT$
4  *
5  * Additional copyrights may follow
6  *
7  * $HEADER$
8  */
9 
10 #ifndef MTL_PORTALS_FLOWCTL_H
11 #define MTL_PORTALS_FLOWCTL_H
12 
14  /** Flow control epoch counter. Triggered events should be
15  based on epoch counter. */
16  uint32_t epoch_counter;
17  /** Flow control trigger ME. Only has meaning at root. When an
18  event is received on this ME, it triggers the flow control
19  alert broadcast.*/
20  ptl_handle_me_t trigger_me_h;
21  /** Flow control trigger CT. Only has meaning at root. */
22  ptl_handle_ct_t trigger_ct_h;
23  /** Flow control alert tree broadcast ME. */
24  ptl_handle_me_t alert_me_h;
25  /** Flow control alert tree broadcast CT. */
26  ptl_handle_ct_t alert_ct_h;
27  /** Flow control alert tree broadcast ME for a local put to
28  generate an event */
29  ptl_handle_me_t alert_event_me_h;
30  /** Flow control restart fan-in ME. */
31  ptl_handle_me_t fanin_me_h;
32  /** Flow control restart fan-in CT. */
33  ptl_handle_ct_t fanin_ct_h;
34  /** Flow control restart fan-out ME. */
35  ptl_handle_me_t fanout_me_h;
36  /** Flow control restart fan-out CT. */
37  ptl_handle_ct_t fanout_ct_h;
38  /** Flow control restart fan-out ME for a local put to generate an
39  event */
40  ptl_handle_me_t fanout_event_me_h;
41 
42  size_t num_procs;
43  size_t num_children;
44  ptl_process_t children[2];
45  ptl_process_t parent;
46  ptl_process_t me;
47  int i_am_root;
48 };
50 
51 /**
52  * Initialize flow control code
53  *
54  * Initialize flow control code. This includes initializing epoch
55  * counter and creating necessary MEs and CTs.
56  */
57 int ompi_mtl_portals4_flowctl_init(void);
58 
59 int ompi_mtl_portals4_flowctl_fini(void);
60 
61 int ompi_mtl_portals4_flowctl_add_procs(size_t me,
62  size_t npeers,
63  struct mca_mtl_base_endpoint_t **peers);
64 int ompi_mtl_portals4_flowctl_setup_comm(void);
65 int ompi_mtl_portals4_flowctl_start_recover(void);
66 
67 #endif
ptl_handle_me_t alert_event_me_h
Flow control alert tree broadcast ME for a local put to generate an event.
Definition: mtl_portals4_flowctl.h:29
ptl_handle_me_t fanout_event_me_h
Flow control restart fan-out ME for a local put to generate an event.
Definition: mtl_portals4_flowctl.h:40
ptl_handle_ct_t fanin_ct_h
Flow control restart fan-in CT.
Definition: mtl_portals4_flowctl.h:33
uint32_t epoch_counter
Flow control epoch counter.
Definition: mtl_portals4_flowctl.h:16
ptl_handle_me_t fanout_me_h
Flow control restart fan-out ME.
Definition: mtl_portals4_flowctl.h:35
ptl_handle_me_t trigger_me_h
Flow control trigger ME.
Definition: mtl_portals4_flowctl.h:20
ptl_handle_me_t alert_me_h
Flow control alert tree broadcast ME.
Definition: mtl_portals4_flowctl.h:24
An abstraction that represents a connection to a endpoint process.
Definition: mtl_mx_endpoint.h:50
ptl_handle_ct_t trigger_ct_h
Flow control trigger CT.
Definition: mtl_portals4_flowctl.h:22
ptl_handle_me_t fanin_me_h
Flow control restart fan-in ME.
Definition: mtl_portals4_flowctl.h:31
ptl_handle_ct_t fanout_ct_h
Flow control restart fan-out CT.
Definition: mtl_portals4_flowctl.h:37
Definition: mtl_portals4_flowctl.h:13
ptl_handle_ct_t alert_ct_h
Flow control alert tree broadcast CT.
Definition: mtl_portals4_flowctl.h:26