The only (important?) components are parallel or distributed J.R. Cary Tech-X Corporation Review of...
-
Upload
ruth-morgan -
Category
Documents
-
view
214 -
download
0
Transcript of The only (important?) components are parallel or distributed J.R. Cary Tech-X Corporation Review of...
![Page 1: The only (important?) components are parallel or distributed J.R. Cary Tech-X Corporation Review of components –Throw out some controversial statements.](https://reader036.fdocuments.in/reader036/viewer/2022062517/56649f155503460f94c29ce9/html5/thumbnails/1.jpg)
The only (important?) components are parallel or distributed
J.R. CaryTech-X Corporation
• Review of components–Throw out some controversial statements–Looking for feedback
• A registry based successful approach to flexibility• Additional requirements from inhomogeneous
parallelism• Baby steps towards parallel registries
![Page 2: The only (important?) components are parallel or distributed J.R. Cary Tech-X Corporation Review of components –Throw out some controversial statements.](https://reader036.fdocuments.in/reader036/viewer/2022062517/56649f155503460f94c29ce9/html5/thumbnails/2.jpg)
Parallel components 2
The component: path to software Nirvana
• May present multiple interfaces–All things to all people?– Interfaces must be known
• Need not be known at link time–Found in the afterlife
![Page 3: The only (important?) components are parallel or distributed J.R. Cary Tech-X Corporation Review of components –Throw out some controversial statements.](https://reader036.fdocuments.in/reader036/viewer/2022062517/56649f155503460f94c29ce9/html5/thumbnails/3.jpg)
Parallel components 3
For single address space, what distinguishes a component from an object?
• Components have well defined interfaces
• Components can have multiple interfaces
• Components can be stateful
• Components can be singletons (shared object lib with static data)
• Objects have well defined interfaces
• Objects can have multiple interfaces (multiple inheritance)
• Objects can be stateful• Objects can be singletons
![Page 4: The only (important?) components are parallel or distributed J.R. Cary Tech-X Corporation Review of components –Throw out some controversial statements.](https://reader036.fdocuments.in/reader036/viewer/2022062517/56649f155503460f94c29ce9/html5/thumbnails/4.jpg)
Parallel components 4
Parallelism is "where it's at" for components
• Domain 0 to Domain 1: “Give me your left border cells”
• Domain 0 to Domain 3: “Give me your upper-left corner cell”
• Each domain provides different data (even interface) to each processor
Domain 1Domain 0
Domain 2 Domain 3
Even with just domain decomposition one now has components
![Page 5: The only (important?) components are parallel or distributed J.R. Cary Tech-X Corporation Review of components –Throw out some controversial statements.](https://reader036.fdocuments.in/reader036/viewer/2022062517/56649f155503460f94c29ce9/html5/thumbnails/5.jpg)
Parallel components 5
You can do a heck of a lot with the above model
• VORPAL: all first-level objects (particles, fields, collision operators) exist on all domains and so are constructed on all.
• All interactions through first-leve objects only• Second-level objects (surface emitters, boundary
conditions) exist on only those procs with geometry containing that object.
![Page 6: The only (important?) components are parallel or distributed J.R. Cary Tech-X Corporation Review of components –Throw out some controversial statements.](https://reader036.fdocuments.in/reader036/viewer/2022062517/56649f155503460f94c29ce9/html5/thumbnails/6.jpg)
Parallel components 6
Construction is through a object definition language
<Grid globalGrid>numPhysCells = [NX NY NZ]lengths = [LX LY LZ]startPositions = [XSTART YSTART ZSTART]</Grid>
<EmField adiemfld> kind = emMultiField# Electric field <Field edgeE> numComponents = 3 numGuardCells = [1 1] offset = edge
# Set E_y and E_z to zero on left boundary <BoundaryCondition leftConductor> kind = constant lowerBounds = [0 -1 -1] upperBounds = [1 NY1 NZ1] indices = [1 2] amplitudes = [0. 0.] </BoundaryCondition> </Field><EmField>
Startup: register implementationsPrior to connection time: register instances
![Page 7: The only (important?) components are parallel or distributed J.R. Cary Tech-X Corporation Review of components –Throw out some controversial statements.](https://reader036.fdocuments.in/reader036/viewer/2022062517/56649f155503460f94c29ce9/html5/thumbnails/7.jpg)
Parallel components 7
FACETS project requires more complex coupling
Closed field lines: slow perpendicular + fast parallel transportQuantities 1DHot plasmaCollisionless, no significant atomic physics (except beams)
Open field lines (or close to): so parallel transport must balance perpendicularQuantities are 2DCool plasmaCollisional, atomic physics is important
Plasma-wall interaction is 2D
Core is essentially 1DEdge is 2DWall is a collection of 1D equations
![Page 8: The only (important?) components are parallel or distributed J.R. Cary Tech-X Corporation Review of components –Throw out some controversial statements.](https://reader036.fdocuments.in/reader036/viewer/2022062517/56649f155503460f94c29ce9/html5/thumbnails/8.jpg)
Parallel components 8
Idealized view: surfacial couplings between phase transitions
• Core is a collisionless, 1D transport system with local, only-cross-surface fluxes
• Edge is a collisional, 2D transport system• Wall: beginning of a particle trapping matrix
1D and 2D surfacial couplings
same points
wall
Coupling
![Page 9: The only (important?) components are parallel or distributed J.R. Cary Tech-X Corporation Review of components –Throw out some controversial statements.](https://reader036.fdocuments.in/reader036/viewer/2022062517/56649f155503460f94c29ce9/html5/thumbnails/9.jpg)
Parallel components 9
Many components, many processors, many interfaces
• Each object exists on a subset of the processors• Connecting each with other components makes life worse• Doing a one-off is not going to help the larger problem
Core
Core
Wall
Wall
Wall
Wall
Wall
Wall
Communicate among selves to get averaged values
Edge component by itself has a complex topology (a regular mesh is worth a lot of contortions)
Wall
Wall
Wall
![Page 10: The only (important?) components are parallel or distributed J.R. Cary Tech-X Corporation Review of components –Throw out some controversial statements.](https://reader036.fdocuments.in/reader036/viewer/2022062517/56649f155503460f94c29ce9/html5/thumbnails/10.jpg)
Parallel components 10
Abstraction: processor groups, objects, interfaces
• Processor group (MPI communicator) on which one has objects (may overlap)
• Objects must register interfaces with processor group
• Must be able to query proc group for interfaces
![Page 11: The only (important?) components are parallel or distributed J.R. Cary Tech-X Corporation Review of components –Throw out some controversial statements.](https://reader036.fdocuments.in/reader036/viewer/2022062517/56649f155503460f94c29ce9/html5/thumbnails/11.jpg)
Parallel components 11
We need a language to describe this
• Self discovery will not work– Inquire of 10000 processors what they have?
• Instead:–Global component created–Creates subcomponents (with associated
communicators) on subsets of procs–Sub components contains components–At each level, can register with parent or arbitrarily high
up in containment
![Page 12: The only (important?) components are parallel or distributed J.R. Cary Tech-X Corporation Review of components –Throw out some controversial statements.](https://reader036.fdocuments.in/reader036/viewer/2022062517/56649f155503460f94c29ce9/html5/thumbnails/12.jpg)
Parallel components 12
We are starting on this in FACETS
<Component facets> kind = parComposer
## Define coupler <Coupler coupler> kind = aBCoupler </Coupler> <Component a> kind = seqComposer load = 1.0. . .
![Page 13: The only (important?) components are parallel or distributed J.R. Cary Tech-X Corporation Review of components –Throw out some controversial statements.](https://reader036.fdocuments.in/reader036/viewer/2022062517/56649f155503460f94c29ce9/html5/thumbnails/13.jpg)
Parallel components 13
No conclusions: work in progress
• Flexibility obtained by registry concept– Implementations– Instances
• Need to generalize for heterogeneous case without building everything everywhere