In the fourth part of his 12-part blog series about structured patterns as a basis for high-level parallel programming, Intel’s Michael McCool writes about the simple gather pattern. He writes that a gather operation is a parallel random read of a set of elements from memory. The gather pattern often is described as a “collective” operation, where an array and a set of indices are provided as input and the output is another array which is the result of all the reads. Writes McCool, gather can also be seen as the combination of a simple “serial” memory read combined with the map pattern discussed previously. Using a random read inside a function used in a map results in a gather. As with other maps, the order in which elements are read in a gather should not affect the outcome of the gather.
To read the full blog post, click here.