Memory access pattern: Difference between revisions

Content deleted Content added
No edit summary
Line 22:
A linear access pattern is closely related to 'strided', where a [[memory address]] may be computed from a linear combination of some index. Stepping through indices sequentially with a linear pattern yields strided access. A linear access pattern for writes (with any access pattern for non overlapping reads) may guarantee that an algorithm can be parallelised, which is exploited in systems supporting [[compute kernel]]s.
 
=== Nearest neighbourneighbor ===
Nearest neighbourneighbor memory access patterns appear in simulation, and are related to sequential/strided patterns. An algorithm may traverse a data structure using information from the nearest neighboursneighbors of a data element (in one or more dimensions) to perform a calculation. These are common in physics simulations operating on grids.<ref name="PGAS programming"/> Nearest neighbourneighbor can also refer to inter-node communication in a cluster; Physics simulations which rely on such local access patterns can be parallelized with the data partitioned into cluster nodes, with purely nearest-neighbourneighbor communication between them, which may have advantages for latency and communication bandwidth. This use case maps well onto [[torus network topology]].
<ref>{{cite web|title=Quantifying Locality In The Memory Access Patterns of HPC Applications|url=http://www.sdsc.edu/~allans/sc05_locality.pdf}}mentions nearest neighbourneighbor access patterns in clusters</ref>
 
=== 2D Spatially coherent ===