1 / 13

The only (important?) components are parallel or distributed

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

fay-gamble
Download Presentation

The only (important?) components are parallel or distributed

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 Baby steps towards parallel registries

  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. 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 For single address space, what distinguishes a component from an object? Parallel components

  4. Parallelism is "where it's at" for components Even with just domain decomposition one now has 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 0 Domain 1 Domain 3 Domain 2 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 implementations Prior to connection time: register instances Parallel components

  7. FACETS project requires more complex coupling • Closed field lines: slow perpendicular + fast parallel transport • Quantities 1D Hot plasma • Collisionless, no significant atomic physics (except beams) Core is essentially 1D Edge is 2D Wall is a collection of 1D equations r • Open field lines (or close to): so parallel transport must balance perpendicular • Quantities are 2D Cool plasma • Collisional, atomic physics is important Plasma-wall interaction is 2D Parallel components

  8. wall same points Coupling 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 Parallel components

  9. Many components, many processors, many interfaces Core Edge component by itself has a complex topology (a regular mesh is worth a lot of contortions) • 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 Communicate among selves to get averaged values Core Wall Wall Wall Wall Wall Wall 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 . . . 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 Parallel components

More Related