-
Mark OLESEN authored
- 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
Mark OLESEN authored- 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
Loading