#627: add coordinates of minimum and maximum in reduction operators -------------------------------------------------+-------------------------- Reporter: bruno.giacomazzo@… | Owner: Type: enhancement | Status: new Priority: major | Milestone: Component: Cactus | Version: Resolution: | Keywords: -------------------------------------------------+--------------------------
Comment (by eschnett):
Yes, we should do this.
The current specification of reduction operations in Cactus is not quite ideal. It is quite complicated to implement because it allows for type conversions while reducing (which people generally do not use), is less efficient than necessary because one cannot combine multiple reductions (e.g. min/max or avg/sdv at the same time), and PUGH and Carpet provide different APIs.
One idea would be to implement a single, new reduction call that calculates min, max, minpos, maxpos, avg, sdv, norm1, norm2, sum, and count at the same time. Given that memory bandwidth and MPI latency are likely to dominate, this should be efficient, and would be very easy to use. (Just call the reduction operator, and look at the structure it returns.)