OpenMPI  0.1.1
mtl_psm.h
1 /*
2  * Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
3  * University Research and Technology
4  * Corporation. All rights reserved.
5  * Copyright (c) 2004-2005 The University of Tennessee and The University
6  * of Tennessee Research Foundation. All rights
7  * reserved.
8  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
9  * University of Stuttgart. All rights reserved.
10  * Copyright (c) 2004-2006 The Regents of the University of California.
11  * All rights reserved.
12  * Copyright (c) 2006 QLogic Corporation. All rights reserved.
13  * $COPYRIGHT$
14  *
15  * Additional copyrights may follow
16  *
17  * $HEADER$
18  */
19 
20 #ifndef MTL_PSM_H_HAS_BEEN_INCLUDED
21 #define MTL_PSM_H_HAS_BEEN_INCLUDED
22 
23 #include "ompi/mca/pml/pml.h"
24 #include "ompi/mca/mtl/mtl.h"
25 #include "ompi/mca/mtl/base/base.h"
26 #include "opal/datatype/opal_convertor.h"
27 #include <psm.h>
28 #include <psm_mq.h>
29 
30 BEGIN_C_DECLS
31 
32 
33 /* MTL interface functions */
34 extern int ompi_mtl_psm_add_procs(struct mca_mtl_base_module_t* mtl,
35  size_t nprocs,
36  struct ompi_proc_t** procs,
37  struct mca_mtl_base_endpoint_t **mtl_peer_data);
38 
39 extern int ompi_mtl_psm_del_procs(struct mca_mtl_base_module_t* mtl,
40  size_t nprocs,
41  struct ompi_proc_t** procs,
42  struct mca_mtl_base_endpoint_t **mtl_peer_data);
43 
44 int
45 ompi_mtl_psm_send(struct mca_mtl_base_module_t* mtl,
46  struct ompi_communicator_t* comm,
47  int dest,
48  int tag,
49  struct opal_convertor_t *convertor,
50  mca_pml_base_send_mode_t mode);
51 
52 extern int ompi_mtl_psm_isend(struct mca_mtl_base_module_t* mtl,
53  struct ompi_communicator_t* comm,
54  int dest,
55  int tag,
56  struct opal_convertor_t *convertor,
57  mca_pml_base_send_mode_t mode,
58  bool blocking,
59  mca_mtl_request_t * mtl_request);
60 
61 extern int ompi_mtl_psm_irecv(struct mca_mtl_base_module_t* mtl,
62  struct ompi_communicator_t *comm,
63  int src,
64  int tag,
65  struct opal_convertor_t *convertor,
66  struct mca_mtl_request_t *mtl_request);
67 
68 
69 extern int ompi_mtl_psm_iprobe(struct mca_mtl_base_module_t* mtl,
70  struct ompi_communicator_t *comm,
71  int src,
72  int tag,
73  int *flag,
74  struct ompi_status_public_t *status);
75 
76 extern int ompi_mtl_psm_imrecv(struct mca_mtl_base_module_t* mtl,
77  struct opal_convertor_t *convertor,
78  struct ompi_message_t **message,
79  struct mca_mtl_request_t *mtl_request);
80 
81 extern int ompi_mtl_psm_improbe(struct mca_mtl_base_module_t *mtl,
82  struct ompi_communicator_t *comm,
83  int src,
84  int tag,
85  int *matched,
86  struct ompi_message_t **message,
87  struct ompi_status_public_t *status);
88 
89 extern int ompi_mtl_psm_cancel(struct mca_mtl_base_module_t* mtl,
90  struct mca_mtl_request_t *mtl_request,
91  int flag);
92 
93 extern int ompi_mtl_psm_add_comm(struct mca_mtl_base_module_t *mtl,
94  struct ompi_communicator_t *comm);
95 
96 extern int ompi_mtl_psm_del_comm(struct mca_mtl_base_module_t *mtl,
97  struct ompi_communicator_t *comm);
98 
99 extern int ompi_mtl_psm_finalize(struct mca_mtl_base_module_t* mtl);
100 
101 int ompi_mtl_psm_module_init(int local_rank, int num_local_procs);
102 
103 
104 
105 END_C_DECLS
106 
107 #endif /* MTL_PSM_H_HAS_BEEN_INCLUDED */
108 
P2P Management Layer (PML)
Definition: mtl.h:51
Remote Open MPI process structure.
Definition: proc.h:56
An abstraction that represents a connection to a endpoint process.
Definition: mtl_mx_endpoint.h:50
Definition: opal_convertor.h:90
Matching Transport Layer.
Definition: mpi.h:337
MTL module interface functions and attributes.
Definition: mtl.h:399
Definition: communicator.h:118
Definition: message.h:22