1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #ifndef MTL_PSM2_H_HAS_BEEN_INCLUDED
25 #define MTL_PSM2_H_HAS_BEEN_INCLUDED
26
27 #include "ompi/mca/pml/pml.h"
28 #include "ompi/mca/mtl/mtl.h"
29 #include "ompi/mca/mtl/base/base.h"
30 #include "ompi/proc/proc.h"
31 #include "opal/datatype/opal_convertor.h"
32 #include <psm2.h>
33 #include <psm2_mq.h>
34
35 BEGIN_C_DECLS
36
37
38 extern opal_mutex_t mtl_psm2_mq_mutex;
39
40
41 extern int ompi_mtl_psm2_add_procs(struct mca_mtl_base_module_t* mtl,
42 size_t nprocs,
43 struct ompi_proc_t** procs);
44
45 extern int ompi_mtl_psm2_del_procs(struct mca_mtl_base_module_t* mtl,
46 size_t nprocs,
47 struct ompi_proc_t** procs);
48
49 int
50 ompi_mtl_psm2_send(struct mca_mtl_base_module_t* mtl,
51 struct ompi_communicator_t* comm,
52 int dest,
53 int tag,
54 struct opal_convertor_t *convertor,
55 mca_pml_base_send_mode_t mode);
56
57 extern int ompi_mtl_psm2_isend(struct mca_mtl_base_module_t* mtl,
58 struct ompi_communicator_t* comm,
59 int dest,
60 int tag,
61 struct opal_convertor_t *convertor,
62 mca_pml_base_send_mode_t mode,
63 bool blocking,
64 mca_mtl_request_t * mtl_request);
65
66 extern int ompi_mtl_psm2_irecv(struct mca_mtl_base_module_t* mtl,
67 struct ompi_communicator_t *comm,
68 int src,
69 int tag,
70 struct opal_convertor_t *convertor,
71 struct mca_mtl_request_t *mtl_request);
72
73
74 extern int ompi_mtl_psm2_iprobe(struct mca_mtl_base_module_t* mtl,
75 struct ompi_communicator_t *comm,
76 int src,
77 int tag,
78 int *flag,
79 struct ompi_status_public_t *status);
80
81 extern int ompi_mtl_psm2_imrecv(struct mca_mtl_base_module_t* mtl,
82 struct opal_convertor_t *convertor,
83 struct ompi_message_t **message,
84 struct mca_mtl_request_t *mtl_request);
85
86 extern int ompi_mtl_psm2_improbe(struct mca_mtl_base_module_t *mtl,
87 struct ompi_communicator_t *comm,
88 int src,
89 int tag,
90 int *matched,
91 struct ompi_message_t **message,
92 struct ompi_status_public_t *status);
93
94 extern int ompi_mtl_psm2_cancel(struct mca_mtl_base_module_t* mtl,
95 struct mca_mtl_request_t *mtl_request,
96 int flag);
97
98 extern int ompi_mtl_psm2_add_comm(struct mca_mtl_base_module_t *mtl,
99 struct ompi_communicator_t *comm);
100
101 extern int ompi_mtl_psm2_del_comm(struct mca_mtl_base_module_t *mtl,
102 struct ompi_communicator_t *comm);
103
104 extern int ompi_mtl_psm2_finalize(struct mca_mtl_base_module_t* mtl);
105
106 int ompi_mtl_psm2_module_init(int local_rank, int num_local_procs);
107
108 extern int ompi_mtl_psm2_register_pvars(void);
109
110
111 END_C_DECLS
112
113 #endif