Reductions to CkCallback::ignore should be no-ops
Currently if you perform a reduction targeted to a CkCallback::ignore routine, the RTS will still perform the reduction and then only at the root will it even look at the callback.
We should check at each contribution site to see if the callback is ignore-able, and return immediately if so.
#1 Updated by Phil Miller over 2 years ago
I think that could lead to state inconsistency, or at least a weakening of the checking for inconsistent callbacks between contributions. Given that the reductions are asynchronous, this is only a serious concern in the setting where the reduction demands a lot of memory or work, which could obstruct other parts of the application, only to be thrown away. I'm doubtful that there's a meaningful overlap between 'substantive reductions' (more than synchronization, a flag, or a count/stats) and 'reductions whose results will be ignored'.