|
19 | 19 |
|
20 | 20 | /***********************************************************************/
|
21 | 21 |
|
| 22 | +typedef struct { |
| 23 | + opal_mutex_t mutex; |
| 24 | + ucp_worker_h worker; |
| 25 | + ucp_ep_h *endpoints; |
| 26 | + int comm_size; |
| 27 | +} _worker_engine_t; |
| 28 | + |
| 29 | +OBJ_CLASS_DECLARATION(_worker_engine_t); |
| 30 | + |
| 31 | +typedef struct { |
| 32 | + int ctx_id; |
| 33 | + opal_common_ucx_ctx_t *gctx; |
| 34 | + _worker_engine_t *worker; |
| 35 | +} _tlocal_ctx_t; |
| 36 | + |
| 37 | +OBJ_CLASS_DECLARATION(_tlocal_ctx_t); |
| 38 | + |
| 39 | +typedef struct { |
| 40 | + _worker_engine_t *worker; |
| 41 | + ucp_rkey_h *rkeys; |
| 42 | +} _mem_info_t; |
| 43 | + |
| 44 | +OBJ_CLASS_DECLARATION(_mem_info_t); |
| 45 | + |
| 46 | +typedef struct { |
| 47 | + int mem_id; |
| 48 | + opal_common_ucx_mem_t *gmem; |
| 49 | + _mem_info_t *mem; |
| 50 | +} _tlocal_mem_t; |
| 51 | + |
| 52 | +OBJ_CLASS_DECLARATION(_tlocal_mem_t); |
| 53 | + |
| 54 | +typedef struct { |
| 55 | + opal_list_item_t super; |
| 56 | + _worker_engine_t *ptr; |
| 57 | +} _idle_list_item_t; |
| 58 | + |
| 59 | +OBJ_CLASS_DECLARATION(_idle_list_item_t); |
| 60 | +OBJ_CLASS_INSTANCE(_idle_list_item_t, opal_list_item_t, NULL, NULL); |
| 61 | + |
| 62 | +typedef struct { |
| 63 | + opal_list_item_t super; |
| 64 | + _worker_engine_t *ptr; |
| 65 | +} _worker_list_item_t; |
| 66 | + |
| 67 | +OBJ_CLASS_DECLARATION(_worker_list_item_t); |
| 68 | +OBJ_CLASS_INSTANCE(_worker_list_item_t, opal_list_item_t, NULL, NULL); |
| 69 | + |
| 70 | +typedef struct { |
| 71 | + opal_list_item_t super; |
| 72 | + _mem_info_t *ptr; |
| 73 | +} _mem_region_list_item_t; |
| 74 | + |
| 75 | +OBJ_CLASS_DECLARATION(_mem_region_list_item_t); |
| 76 | +OBJ_CLASS_INSTANCE(_mem_region_list_item_t, opal_list_item_t, NULL, NULL); |
| 77 | + |
| 78 | +/* thread-local table */ |
| 79 | +typedef struct { |
| 80 | + _tlocal_ctx_t **ctx_tbl; |
| 81 | + size_t ctx_tbl_size; |
| 82 | + _tlocal_mem_t **mem_tbl; |
| 83 | + size_t mem_tbl_size; |
| 84 | +} _tlocal_table_t; |
| 85 | + |
| 86 | +static pthread_key_t _tlocal_key = {0}; |
| 87 | + |
| 88 | +/***********************************************************************/ |
| 89 | + |
22 | 90 | extern mca_base_framework_t opal_memory_base_framework;
|
23 | 91 |
|
24 | 92 | opal_common_ucx_module_t opal_common_ucx = {
|
|
0 commit comments