Download Efficient Run time Short for the Irregular Block Structured | CMSC 714 and more Study notes Computer Science in PDF only on Docsity! Efficient Run-time Support for Irregular Block-Structured Applications By Stephen J. Fink and Scott B. Baden and Scott R. Kohn Presented for your delectation by Asad B. Sayeed Background โ Main type of application considered: scientific numerical methods. โ These applications often use structured irregular representations to improve accuracy. โ Difficult to implement. โ Cause unpredictable/irregular communication patterns, impeding performance optimization. โ Goal: assist programmer in arranging parallelism so the data layout and distribution best exploit memory arrangements. Programming Model โ Programs begin with a single (logical) control thread. โ for_all loop iterations: each one executes independently on one SPMD process. โ Storage model: distribute each block of data to its own logical address space, one space per processor. โ Little compiler automation, even for consistency. โ Programmer explicitly describes data decomposition and also data motion (via block copy operations). Data Layout Abstractions โ Four core data decompositions abstractions: Point, Region, Grid, XArray, inherited from KeLP's predecessor LPARX. KeLP innovation: FloorPlans. โ Point: represents point in n-dim space. โ Region: rectangular subset of Points.. โ Grid: array of data indexed by Region. โ XArray : array of Grids of different (irregular) shape. โ FloorPlans: array of Regions representing processor assignments for XArray. Data Layout Abstractions โ Regions are constructed by Region calculus. โ XArrays and FloorPlans: ata Layout and Data Motion
Summary of classes:
Table 1
A Brief Synopsis of the KeLP Data Types
Geometric structural abstractions
Name Definition Interpretation
PointD {int Jp, int 4, ... , int dp) A point in 2โ
RegionD {PointD /, PointD A} A rectangular subset of 7ยฐ
FloorPlanD Array of (RegionD 2, int p) A set of regions, each assigned
to a processor p
MotionPlanD List of ((int f, RegionD R}, Block-structured communication
(int ยข, RegionD R;})} pattern between two FloorPlans
Data types that interpret abstractions
Name Description
GridD A multidimensional array whose index space is a RegionD
XArrayD An array of GridDs; structure represented by a FloorPlanD
MoverD Object that atomically performs the data motion pattern described by a MotionPlan
Simple Data Motion Example โ fillpatch: fills in ghost cells from logically overlapping grids. โ Code and example of irregular XArray. Bigger Ghost Cells Example โ Elliptic PDE solver: โ Region2, etc are 2D arrays. Implementation Issues โ KeLP predecessor: LPARX. โ LPARX allowed asynchronous one-sided communication: creates barriers for process state global synchronization. โ KeLP: bans copy operations from for_all loops, eliminating this problem; ie, only for_1 loops perform copies. Each process stores relevant portion of movement plan. โ Mover: implemented via nonblocking MPI send โ In and out buffers allocated to each process. โ Receives data while it waits for sends to finish. Performance โ Comparison to MPI. โ Three benchmarks involving heavy matrix computation: NAS-FT, NAS-MG, SUMMA. โ Very conservatively translated to KeLP from MPI. Performance โ Adaptive multigrid: lda3d โ Eigenvalue solver from โab initioโ materials science. โ Highly irregular communication.