Provide put & get message passing primitives for the bsp1d backend#407
Provide put & get message passing primitives for the bsp1d backend#407
Conversation
anyzelman
left a comment
There was a problem hiding this comment.
Intermediary review request to double-check code structure -- and all looks good from that perspective to me=)) Also some minor comments I saw while going through it quickly just now
include/graphblas/bsp/rdma.hpp
Outdated
| const void* buf_void = reinterpret_cast< const void* >( buf ); | ||
|
|
||
| data.ensureMemslotAvailable( 1 ); | ||
| data.signalMemslotTaken(); |
There was a problem hiding this comment.
this one should come after line 62 (and only if that call returned SUCCESS probably?)
There was a problem hiding this comment.
I agree for after line 62, but I am not sure about the SUCCESS check. There are many kinds of possible errors that could happen, so I think it's safer to take a memslot in any case
include/graphblas/bsp/rdma.hpp
Outdated
|
|
||
| // data.ensureMemslotAvailable( 1 ); // this function calls lpf_sync | ||
| { | ||
| const auto it = data.registered_slots.find( reinterpret_cast< const void* >( dst ) ); |
There was a problem hiding this comment.
it may be more robust to introduce a grb::Scalar type ...but maybe let's worry about that later
There was a problem hiding this comment.
I'll leave this one open for the day I will actually implement this
|
Currently I register locally objects needed for put/get and then forget about them.
In both cases I will have to implement something to keep track of them. It might also happen that we a locally registered address is registered globally, and in that case I guess we should deregister locally before registering globally |
Resolves #405