“…The language APL provided a model for several of these operations, and some parallel versions of APL have appeared. Languages such as C* [Thinking Machines Corporation, 1991], UPC [El-Ghazawi, Carlson, Sterline, Yellick, 2005], OpenMP [OpenMP Architecture Review Board, 2005], and FORTRAN 90 [Brainerd, Goldberg, and Adams, 1990] also provide for some forms of global operations, as do message-passing systems such as MPI [Snir, Otto, Huss-Lederman, Walker, and Dongarra, 1995]. Reduction operations are so important that most parallelizing compilers detect them automatically, even if they have no explicit support for other global operations.…”