-
- Downloads
ENH: simplify handling of pushed/freed requests
- previously had an additional stack for freedRequests_, which were used to 'remember' locations into the list of outstandingRequests_ that were handled by 'waitRequest()'. This was principally done for sanity checks on shutdown, but we now just test for any outstanding requests that are *not* MPI_REQUEST_NULL instead (much simpler). The framework with freedRequests_ also had a provision to 'recycle' them by popping from that stack, but this is rather fragile since it would only triggered by some collectives (MPI_Iallreduce, MPI_Ialltoall, MPI_Igather, MPI_Iscatter) with no guarantee that these will all be properly removed again. There was also no pruning of extraneous indices. ENH: consolidate internal reset/push of requests - replace duplicate code with inline functions reset_request(), push_request() ENH: null out trailing requests - extra safety (paranoia) for the UPstream::Request versions of finishedRequests(), waitAnyRequest() CONFIG: document nPollProcInterfaces in etc/controlDict - still experimental, but at least make the keyword known
Showing
- etc/controlDict 5 additions, 1 deletionetc/controlDict
- src/OpenFOAM/db/IOstreams/Pstreams/UPstream.H 61 additions, 48 deletionssrc/OpenFOAM/db/IOstreams/Pstreams/UPstream.H
- src/Pstream/mpi/PstreamGlobals.C 0 additions, 1 deletionsrc/Pstream/mpi/PstreamGlobals.C
- src/Pstream/mpi/PstreamGlobals.H 40 additions, 18 deletionssrc/Pstream/mpi/PstreamGlobals.H
- src/Pstream/mpi/UIPstreamRead.C 5 additions, 11 deletionssrc/Pstream/mpi/UIPstreamRead.C
- src/Pstream/mpi/UOPstreamWrite.C 5 additions, 13 deletionssrc/Pstream/mpi/UOPstreamWrite.C
- src/Pstream/mpi/UPstream.C 0 additions, 1 deletionsrc/Pstream/mpi/UPstream.C
- src/Pstream/mpi/UPstreamRequest.C 21 additions, 9 deletionssrc/Pstream/mpi/UPstreamRequest.C
- src/Pstream/mpi/UPstreamWrappingTemplates.C 21 additions, 116 deletionssrc/Pstream/mpi/UPstreamWrappingTemplates.C
Loading
Please register or sign in to comment