Upload
fay-gamble
View
22
Download
0
Tags:
Embed Size (px)
DESCRIPTION
The only (important?) components are parallel or distributed. J.R. Cary Tech-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 - PowerPoint PPT Presentation
Citation preview
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
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
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
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
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.
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
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
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
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
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
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
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. . .