25 #ifndef MCA_BTL_UDAPL_H
26 #define MCA_BTL_UDAPL_H
28 #include "ompi_config.h"
29 #include <sys/types.h>
35 #include "opal/mca/event/event.h"
36 #include "ompi/class/ompi_free_list.h"
39 #include "ompi/mca/btl/base/btl_base_error.h"
43 #include "btl_udapl_endpoint.h"
65 size_t udapl_eager_frag_size;
66 size_t udapl_max_frag_size;
67 size_t udapl_eager_rdma_frag_size;
91 char **if_include_list;
93 char **if_exclude_list;
95 int32_t ro_aware_system;
111 DAT_IA_HANDLE udapl_ia;
112 DAT_PZ_HANDLE udapl_pz;
113 DAT_PSP_HANDLE udapl_psp;
114 DAT_IA_ATTR udapl_ia_attr;
117 DAT_EVD_HANDLE udapl_evd_async;
118 DAT_EVD_HANDLE udapl_evd_dto;
119 DAT_EVD_HANDLE udapl_evd_conn;
120 DAT_EP_PARAM udapl_ep_param;
132 int32_t udapl_eager_rdma_endpoint_count;
140 int32_t udapl_async_events;
141 int32_t udapl_connect_inprogress;
142 int32_t udapl_num_peers;
145 int udapl_async_evd_qlen;
146 int udapl_conn_evd_qlen;
147 int udapl_dto_evd_qlen;
162 DAT_LMR_TRIPLET lmr_triplet;
163 DAT_RMR_CONTEXT rmr_context;
219 #define VERBOSE_CRITICAL 0
220 #define VERBOSE_SHOW_HELP 10
221 #define VERBOSE_INFORM 20
222 #define VERBOSE_DIAGNOSE 30
223 #define VERBOSE_DEVELOPER 90
225 #define BTL_UDAPL_VERBOSE_OUTPUT(verbose_level, args) \
227 if (verbose_level <= mca_btl_udapl_component.udapl_verbosity) { \
232 #define BTL_UDAPL_VERBOSE_HELP(verbose_level, args) \
234 if (verbose_level <= mca_btl_udapl_component.udapl_verbosity) { \
235 orte_show_help args; \
244 #if OPAL_ENABLE_DEBUG
245 extern void mca_btl_udapl_error(DAT_RETURN ret,
char* str);
247 #define MCA_BTL_UDAPL_ERROR(ret, str) \
248 mca_btl_udapl_error((ret), (str));
251 #define MCA_BTL_UDAPL_ERROR(ret, str)
273 int *num_btl_modules,
274 bool allow_multi_user_threads,
275 bool have_hidden_threads
295 DAT_NAME_PTR ia_name,
364 mca_btl_base_tag_t tag
int mca_btl_udapl_component_close(void)
Any final cleanup before being unloaded.
Definition: btl_udapl_component.c:225
int mca_btl_udapl_get(struct mca_btl_base_module_t *btl, struct mca_btl_base_endpoint_t *btl_peer, struct mca_btl_base_descriptor_t *decriptor)
Initiate an asynchronous get.
Definition: btl_udapl.c:1318
int mca_btl_udapl_ft_event(int state)
Fault Tolerance Event Notification Function.
Definition: btl_udapl.c:1327
int32_t udapl_eager_rdma_num
number of rdma buffers allocated for short messages
Definition: btl_udapl.h:75
opal_mutex_t udapl_lock
lock for accessing module state
Definition: btl_udapl.h:87
Populates global structure with system-specific information.
A descriptor that holds the parameters to a send/put/get operation along w/ a callback routine that i...
Definition: btl.h:275
dynamic pointer array
Definition: opal_pointer_array.h:45
Definition: opal_bitmap.h:53
int32_t udapl_sr_win
number of fragments recieved before returning credits to sender
Definition: btl_udapl.h:62
mca_btl_base_descriptor_t * mca_btl_udapl_prepare_dst(struct mca_btl_base_module_t *btl, struct mca_btl_base_endpoint_t *peer, struct mca_mpool_base_registration_t *, struct opal_convertor_t *convertor, uint8_t order, size_t reserve, size_t *size, uint32_t flags)
Prepare a descriptor for send/rdma using the supplied convertor.
Definition: btl_udapl.c:1149
mca_btl_base_descriptor_t * mca_btl_udapl_prepare_src(struct mca_btl_base_module_t *btl, struct mca_btl_base_endpoint_t *peer, struct mca_mpool_base_registration_t *, struct opal_convertor_t *convertor, uint8_t order, size_t reserve, size_t *size, uint32_t flags)
Prepare a descriptor for send/rdma using the supplied convertor.
Definition: btl_udapl.c:1019
mca_btl_base_component_2_0_0_t super
base BTL component
Definition: btl_udapl.h:53
struct mca_btl_udapl_module_t ** udapl_btls
array of available BTL modules
Definition: btl_udapl.h:59
int32_t udapl_max_eager_rdma_peers
maximum number of peers allowed to use RDMA for short messages (cap)
Definition: btl_udapl.h:77
Definition: mutex_unix.h:53
int mca_btl_udapl_send(struct mca_btl_base_module_t *btl, struct mca_btl_base_endpoint_t *btl_peer, struct mca_btl_base_descriptor_t *descriptor, mca_btl_base_tag_t tag)
Initiate an asynchronous send.
Definition: btl_udapl.c:1209
int32_t udapl_num_sends
number of sends to post on endpoint
Definition: btl_udapl.h:61
Structure used to publish uDAPL id information to peers.
Definition: btl_udapl_endpoint.h:50
int mca_btl_udapl_add_procs(struct mca_btl_base_module_t *btl, size_t nprocs, struct ompi_proc_t **procs, struct mca_btl_base_endpoint_t **peers, opal_bitmap_t *reachable)
PML->BTL notification of change in the process list.
Definition: btl_udapl.c:854
See opal_bitmap.h for an explanation of why there is a split between OPAL and ORTE for this generic c...
Remote Open MPI process structure.
Definition: proc.h:56
int udapl_free_list_inc
number of elements to alloc when growing
Definition: btl_udapl.h:73
uint32_t udapl_if_mask
netmask value btl module
Definition: btl_udapl.h:154
int mca_btl_udapl_free(struct mca_btl_base_module_t *btl, mca_btl_base_descriptor_t *des)
Return a segment allocated by this BTL.
Definition: btl_udapl.c:987
int udapl_free_list_max
maximum size of free lists
Definition: btl_udapl.h:72
int32_t udapl_buffer_alignment
preferred communication buffer alignment, in bytes
Definition: btl_udapl.h:85
int mca_btl_udapl_put(struct mca_btl_base_module_t *btl, struct mca_btl_base_endpoint_t *btl_peer, struct mca_btl_base_descriptor_t *decriptor)
Initiate an asynchronous put.
Definition: btl_udapl.c:1238
int32_t udapl_verbosity
report out level, see "Report Out from uDAPL BTL" below for details.
Definition: btl_udapl.h:55
uDAPL BTL component.
Definition: btl_udapl.h:52
int mca_btl_udapl_finalize(struct mca_btl_base_module_t *btl)
Cleanup any resources held by the BTL.
Definition: btl_udapl.c:496
int32_t udapl_use_eager_rdma
turn rdma for small msgs on/off
Definition: btl_udapl.h:74
mca_btl_base_module_t super
base BTL interface
Definition: btl_udapl.h:107
Definition: btl_udapl.h:159
int mca_btl_udapl_component_open(void)
Register uDAPL component parameters with the MCA framework.
Definition: btl_udapl_component.c:185
mca_btl_base_descriptor_t * mca_btl_udapl_alloc(struct mca_btl_base_module_t *btl, struct mca_btl_base_endpoint_t *endpoint, uint8_t order, size_t size, uint32_t flags)
Allocate a descriptor with a segment of the requested size.
Definition: btl_udapl.c:929
Byte Transfer Layer (BTL)
BTL Module Interface.
Definition: btl_udapl.h:106
uint32_t udapl_timeout
connection timeout, in microseconds
Definition: btl_udapl.h:64
Definition: ompi_free_list.h:39
mca_btl_base_module_t ** mca_btl_udapl_component_init(int *num_btl_modules, bool allow_multi_user_threads, bool have_hidden_threads)
uDAPL component initialization.
Definition: btl_udapl_component.c:436
opal_list_t udapl_procs
list of udapl proc structures
Definition: btl_udapl.h:86
int mca_btl_udapl_init(DAT_NAME_PTR ia_name, struct mca_btl_udapl_module_t *btl)
Initialize resources for a new BTL/uDAPL IA.
Definition: btl_udapl.c:145
State of ELAN endpoint connection.
Definition: btl_elan_endpoint.h:33
BTL component descriptor.
Definition: btl.h:411
Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana University Research and Techno...
Definition: opal_convertor.h:90
int udapl_free_list_num
initial size of free lists
Definition: btl_udapl.h:71
Definition: opal_list.h:147
int mca_btl_udapl_del_procs(struct mca_btl_base_module_t *btl, size_t nprocs, struct ompi_proc_t **procs, struct mca_btl_base_endpoint_t **peers)
PML->BTL notification of change in the process list.
Definition: btl_udapl.c:912
int32_t udapl_conn_priv_data
use connect priv data for proc data
Definition: btl_udapl.h:83
int32_t udapl_num_recvs
number of recv buffers to keep posted
Definition: btl_udapl.h:60
int mca_btl_udapl_component_progress(void)
uDAPL component progress.
Definition: btl_udapl_component.c:834
size_t udapl_max_btls
maximum number of supported hcas
Definition: btl_udapl.h:58
int udapl_max_recv_dtos
maximum number of outstanding consumer submitted recv operations, see section 6.6.6 of uDAPL Spec
Definition: btl_udapl.h:151
int32_t udapl_async_events
dequeue asynchronous events
Definition: btl_udapl.h:84
int32_t udapl_eager_rdma_win
number of eager RDMA fragments recieved before returning credits to sender
Definition: btl_udapl.h:80
BTL module interface functions and attributes.
Definition: btl.h:786
char * udapl_mpool_name
name of memory pool
Definition: btl_udapl.h:88
int udapl_max_request_dtos
maximum number of outstanding consumer submitted sends and rdma operations, see section 6...
Definition: btl_udapl.h:148
int32_t udapl_compare_subnet
whether to compare with netmask or not
Definition: btl_udapl.h:89
size_t udapl_num_btls
number of hcas available to the uDAPL component
Definition: btl_udapl.h:57