dash
                                
                                 dash copied to clipboard
                                
                                    dash copied to clipboard
                            
                            
                            
                        DART API calls with DART_UNDEFINED_UNIT_ID
All DART API calls validate the unitId arguments (source and destination) to be in the range 0 <= unitId < team_size. Unfortunately, this prohibits the possibility to pass DART_UNEFINED_UNIT_ID as an equivalent to MPI_PROC_NULL which is a valid parameter in MPI communication routines. This greatly simplifies code and leaves possible optimizations to MPI. We do not have a notion of DART_UNIT_ID_NULL or something similar. That is something we certainly need. At least I need it in dash::sort to provide a very simple ring-communication based on dart_sendrecv.
So I did a small fix for me and mapped DART_UNDEFINED_UNIT_ID to MPI_PROC_NULL, see this code. But we need a more general solution there since it affects all communication routines.
Interesting use-case, didn't think we'd need that. Introducing that globally should be straight-forward (afaics, it's only relevant for put/get/send/recv/sendrecv, right?). Except for sendrecv, we can short-cut and avoid a call to MPI alltogether...
You may be right. It is not really urgent since I have a "fix" for my use case, so prioritize more critical stuff for you.