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