“…They have been well researched in the context of optimizing compilers. The work in this area focused on a variety of issues (loosely categorized as follows) including detection of reductions [1,4,12,17], parallelization/scheduling strategies [9,18,22,27,28,34,35], speculative approaches [6,7,21,39], and architectural support [10]. The earlier techniques were often limited to loops in which the reduction variables and operators were fully analyzable by the compiler (even if the loop bounds were unknown).…”