Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Non-blocking PUT in CHPL_COMM=ofi #25977

Merged
merged 25 commits into from
Oct 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
ffbfdd3
Non-blocking PUT implementation
jhh67 Sep 17, 2024
4ba2770
Added comments
jhh67 Sep 18, 2024
132677d
Free non-blocking handle after operation completes
jhh67 Sep 18, 2024
11eccc1
Cleanup
jhh67 Sep 18, 2024
a77c004
Rewrote PUT logic
jhh67 Sep 19, 2024
08861b5
Add environment variables for testing
jhh67 Sep 20, 2024
6baa0e0
Free dynamically-allocated handles in ofi_put
jhh67 Sep 20, 2024
2e0c389
Change forceMemFxVisAllNodes to work on unbound endpoints
jhh67 Sep 20, 2024
47e75cb
Improved tci debugging output
jhh67 Sep 20, 2024
9f4079e
Allocate visibility bitmaps for unbound endpoints
jhh67 Sep 20, 2024
06e11af
Fixed number of transmit contexts computation
jhh67 Sep 20, 2024
1872b30
Added tciAlloc call site debug info
jhh67 Sep 20, 2024
b07b36d
Change type of numTxCtxs and numRxCtxs to size_t
jhh67 Sep 23, 2024
27f9312
numTxCtxs is now of type size_t
jhh67 Sep 23, 2024
e3bc955
Better comments
jhh67 Sep 23, 2024
80d1bc1
Remove trailing whitespace
jhh67 Sep 24, 2024
b58f4e0
Run bigTransfer test with unbound endpoints
jhh67 Sep 24, 2024
a174b15
Only run PUT
jhh67 Sep 24, 2024
c06b0b4
Run bigTransfer tests with small fabric message size
jhh67 Sep 24, 2024
c4ff0a1
Add chpl_comm_free_nb_handle to CHPL_COMM=none
jhh67 Oct 1, 2024
95a418e
Add chpl_comm_free_nb_handle to CHPL_COMM=gasnet
jhh67 Oct 2, 2024
1efd4f4
Added chpl_comm_free_nb_handle to CHPL_COMM=ugni
jhh67 Oct 2, 2024
9bbb972
Added chpl_comm_free_nb_handle to gasnet-ex
jhh67 Oct 2, 2024
2dfb923
Fixed typos
jhh67 Oct 2, 2024
b260c4f
Addressed reviewer's comments
jhh67 Oct 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions runtime/include/chpl-comm.h
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,9 @@ void chpl_comm_wait_nb_some(chpl_comm_nb_handle_t* h, size_t nhandles);
// detected.
int chpl_comm_try_nb_some(chpl_comm_nb_handle_t* h, size_t nhandles);

// Free a handle returned by chpl_comm_*_nb.
void chpl_comm_free_nb_handle(chpl_comm_nb_handle_t h);

// Returns whether or not the passed wide address is known to be in
// a communicable memory region and known to be readable. That is,
// GET to that address should succeed without an access violation
Expand Down
1 change: 1 addition & 0 deletions runtime/include/chpl-mem-desc.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ extern "C" {
m(COMM_PER_LOC_INFO, "comm layer per-locale information", false), \
m(COMM_PRV_OBJ_ARRAY, "comm layer private objects array", false), \
m(COMM_PRV_BCAST_DATA, "comm layer private broadcast data", false), \
m(COMM_NB_HANDLE, "comm layer non-blocking handle", false), \
m(MEM_HEAP_SPACE, "mem layer heap expansion space", false), \
m(GLOM_STRINGS_DATA, "glom strings data", true ), \
m(STRING_LITERALS_BUF, "string literals buffer", true ), \
Expand Down
1 change: 1 addition & 0 deletions runtime/src/chpl-cache.c
Original file line number Diff line number Diff line change
Expand Up @@ -1967,6 +1967,7 @@ chpl_bool do_wait_for(struct rdcache_s* cache, cache_seqn_t sn)
// Whether we waited above or not, if the first entry's event
// is already complete, then remove it from the queue.
if (chpl_comm_test_nb_complete(cache->pending[index])) {
chpl_comm_free_nb_handle(cache->pending[index]);
fifo_circleb_pop(&cache->pending_first_entry,
&cache->pending_last_entry,
cache->pending_len);
Expand Down
2 changes: 2 additions & 0 deletions runtime/src/comm/gasnet/comm-gasnet-ex.c
Original file line number Diff line number Diff line change
Expand Up @@ -685,6 +685,8 @@ int chpl_comm_try_nb_some(chpl_comm_nb_handle_t* h, size_t nhandles)
return gex_Event_TestSome((gex_Event_t*) h, nhandles, GEX_NO_FLAGS) == GASNET_OK;
}

void chpl_comm_free_nb_handle(chpl_comm_nb_handle_t h) { }

// TODO GEX could be scalable query to gasnet itself
int chpl_comm_addr_gettable(c_nodeid_t node, void* start, size_t len)
{
Expand Down
2 changes: 2 additions & 0 deletions runtime/src/comm/gasnet/comm-gasnet.c
Original file line number Diff line number Diff line change
Expand Up @@ -686,6 +686,8 @@ int chpl_comm_try_nb_some(chpl_comm_nb_handle_t* h, size_t nhandles)
return gasnet_try_syncnb_some((gasnet_handle_t*) h, nhandles) == GASNET_OK;
}

void chpl_comm_free_nb_handle(chpl_comm_nb_handle_t h) { }

int chpl_comm_addr_gettable(c_nodeid_t node, void* start, size_t len)
{
#ifdef GASNET_SEGMENT_EVERYTHING
Expand Down
4 changes: 4 additions & 0 deletions runtime/src/comm/none/comm-none.c
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,10 @@ int chpl_comm_try_nb_some(chpl_comm_nb_handle_t* h, size_t nhandles)
return 0;
}

void chpl_comm_free_nb_handle(chpl_comm_nb_handle_t h) {
assert(h == NULL);
}

int chpl_comm_addr_gettable(c_nodeid_t node, void* start, size_t len)
{
return 0;
Expand Down
Loading