OpenMPI  0.1.1
vprotocol_pessimist.h
1 /*
2  * Copyright (c) 2004-2007 The Trustees of the University of Tennessee.
3  * All rights reserved.
4  * $COPYRIGHT$
5  *
6  * Additional copyrights may follow
7  *
8  * $HEADER$
9  */
10 
11 #ifndef __INCLUDE_VPROTOCOL_PESSIMIST_H__
12 #define __INCLUDE_VPROTOCOL_PESSIMIST_H__
13 
14 #include "ompi_config.h"
15 #include "../vprotocol.h"
16 #include "ompi/communicator/communicator.h"
17 #include "ompi/datatype/ompi_datatype.h"
18 
19 #include "vprotocol_pessimist_event.h"
20 #include "vprotocol_pessimist_sender_based_types.h"
21 
22 BEGIN_C_DECLS
23 
26 
27  /* Event clock */
28  vprotocol_pessimist_clock_t clock;
29 
30  /* list of events to send to Event Logger */
31  opal_list_t pending_events;
32 
33  /* output buffer for messages to event logger */
34  ompi_communicator_t *el_comm;
35  vprotocol_pessimist_mem_event_t *event_buffer;
36  size_t event_buffer_length;
37  size_t event_buffer_max_length;
38 
39  /* space for allocating events */
40  ompi_free_list_t events_pool;
41 
42  /* Sender Based repository */
44 
45  /* replay mode variables */
46  bool replay;
47  opal_list_t replay_events;
49 
50 OMPI_DECLSPEC extern mca_vprotocol_pessimist_module_t mca_vprotocol_pessimist;
51 OMPI_DECLSPEC extern mca_vprotocol_base_component_t mca_vprotocol_pessimist_component;
52 
53 int mca_vprotocol_pessimist_enable(bool enable);
54 int mca_vprotocol_pessimist_dump(struct ompi_communicator_t* comm, int verbose);
55 
56 int mca_vprotocol_pessimist_add_procs(struct ompi_proc_t **procs, size_t nprocs);
57 int mca_vprotocol_pessimist_del_procs(struct ompi_proc_t **procs, size_t nprocs);
58 int mca_vprotocol_pessimist_progress(void);
59 int mca_vprotocol_pessimist_add_comm(struct ompi_communicator_t* comm);
60 int mca_vprotocol_pessimist_del_comm(struct ompi_communicator_t* comm);
61 
62 int mca_vprotocol_pessimist_irecv(void *addr,
63  size_t count,
64  ompi_datatype_t * datatype,
65  int src,
66  int tag,
67  struct ompi_communicator_t *comm,
68  struct ompi_request_t **request );
69 int mca_vprotocol_pessimist_recv(void *addr,
70  size_t count,
71  ompi_datatype_t * datatype,
72  int src,
73  int tag,
74  struct ompi_communicator_t *comm,
75  ompi_status_public_t * status );
76 
77 int mca_vprotocol_pessimist_isend(void *buf,
78  size_t count,
79  ompi_datatype_t* datatype,
80  int dst,
81  int tag,
82  mca_pml_base_send_mode_t sendmode,
83  ompi_communicator_t* comm,
85 int mca_vprotocol_pessimist_send(void *buf,
86  size_t count,
87  ompi_datatype_t* datatype,
88  int dst,
89  int tag,
90  mca_pml_base_send_mode_t sendmode,
91  ompi_communicator_t* comm );
92 
93 int mca_vprotocol_pessimist_iprobe(int src, int tag,
94  struct ompi_communicator_t *comm,
95  int *matched, ompi_status_public_t * status );
96 int mca_vprotocol_pessimist_probe(int src, int tag,
97  struct ompi_communicator_t *comm,
98  ompi_status_public_t * status );
99 
100 END_C_DECLS
101 
102 #include "vprotocol_pessimist_wait.h"
103 #include "vprotocol_pessimist_start.h"
104 
105 #include "vprotocol_pessimist_request.h"
106 #include "vprotocol_pessimist_sender_based.h"
107 #include "vprotocol_pessimist_eventlog.h"
108 
109 #endif /* __INCLUDE_VPROTOCOL_PESSIMIST_H__ */
Definition: vprotocol_pessimist_event.h:40
Definition: ompi_datatype.h:68
Definition: vprotocol.h:47
Remote Open MPI process structure.
Definition: proc.h:56
Definition: vprotocol.h:57
Definition: ompi_free_list.h:39
Definition: vprotocol_pessimist.h:24
Definition: opal_list.h:147
Definition: mpi.h:337
Definition: evdns.c:158
Definition: communicator.h:118
Main top-level request struct definition.
Definition: request.h:100
Definition: vprotocol_pessimist_sender_based_types.h:26