Tammy dahlgren tom epperly scott kohn gary kumfert
This presentation is the property of its rightful owner.
Sponsored Links
1 / 36

Tammy Dahlgren, Tom Epperly, Scott Kohn, & Gary Kumfert PowerPoint PPT Presentation


  • 52 Views
  • Uploaded on
  • Presentation posted in: General

Tammy Dahlgren, Tom Epperly, Scott Kohn, & Gary Kumfert. Going Parallel. Take 2. Format. Recap of Gatlinburg Talk... ... only in Reverse... ... Conceptually, not literally. x. y. 0. 0.0. .9. 0. 1.1. 1. .8. 1. 0. y. 2.2. 2. .7. 1. 2. 2. x. .6. 3. 3. 4. 5.

Download Presentation

Tammy Dahlgren, Tom Epperly, Scott Kohn, & Gary Kumfert

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Tammy dahlgren tom epperly scott kohn gary kumfert

Tammy Dahlgren, Tom Epperly, Scott Kohn, & Gary Kumfert

Going Parallel

Take 2


Format

Format

Recap of Gatlinburg Talk...

... only in Reverse...

... Conceptually, not literally.


Example 1 1 d vectors

x

y

0

0.0

.9

0

1.1

1

.8

1

0

y

2.2

2

.7

1

2

2

x

.6

3

3

4

5

y

3.3

3

6

7

8

.5

4

4

4.4

5

.4

9

10

5

5.5

11

Example #1: 1-D Vectors

double d = x.dot( y );


Example 2 undirected graph

0

1

2

3

4

5

6

7

8

9

10

11

Example #2: Undirected Graph

0

0

1

2

1

2

3

4

5

3

4

5

6

7

6

7

8

8

9

10

9

10

11

11


Big picture

Big Picture

  • What is the largest set of MxN Redistributable components?

  • How do we allow developers to add to this set?

  • Generality over Performance


Other complicated tasks in cs

Other Complicated Tasks in CS

  • GUI APIs

    • Java-AWT: must extend “Frame”

    • Lots of default behaviors inherited

  • Threaded Apps

    • Java: class must implement Runnable

    • Must implement methods so JVM can interact with class correctly


Last few rhetorical questions

Last few Rhetorical Questions

  • Can we employ a similar strategy for MxN?

  • Corollaries

    • If so, which one?

    • How?


Tale of two customers

Library Developer

Familiar with Component Tech.

Formal Software Training

Application Programmer

May not be aware of using Babel

May have no formal SW training

Tale of two Customers

Developer

User


Zen of babel

Zen of Babel

  • If its difficult...... let Babel do it.

  • If its impossible for Babel...... let developer do it.

  • If its difficult for user...... shift burden to Babel or Developer if at all possible


Solution

Solution

  • Babel provides a MUX in its runtime

  • Parallel Distributed ComponentsMUST IMPLEMENT the MxNRedistributable Interface

  • All communication & data redistribution details hidden from user.

except performance, of course! ;-)


Ramifications

Ramifications

  • User still programs in SPMD model

  • User may not selectively exclude processes or threads from a parallel RMI

  • User may not alter communication modes (synch v. asynch, etc.)

    • Determined by Babel

    • Modifiers may be available to developer in SIDL... e.g. “oneway” !


Ramifications 2

Ramifications (2)

  • No MPI communicator connecting M to N

    • May not know M and N when driver is launched

  • M = N, M<N, M>N, M=1, N=1, Okay

  • Non-rectilinear Data, No Problem

  • Owner Computes


Now drilling one level deeper

Now Drilling One Level Deeper...


Babel inserts code between user developer

Babel Inserts Code between User & Developer

  • language interoperability

    • COMPLEX*(4) == complex<float>

  • virtual function dispatch

    • call foo() on interface, dispatch to implementing class

  • implement RMI

  • remap distributed data

no industry

precedent


Impls and stubs and skels

Impls and Stubs and Skels

  • Application: uses components in user’s language of choice

  • Client Side Stubs: translate from application language to C

  • Internal Object Representation: Always in C

  • Server Side Skeletons: translates IOR (in C) to component implementation language

  • Implementation: component developers choice of language. (Can be wrappers to legacy code)

Application

Stubs

IORs

Skels

Impls


Out of process components

Out of Process Components

Application

Stubs

IPC

IORs

IORs

IPC

Skels

Impls


Remote components

Remote Components

Application

Line Protocol

Stubs

Unmarshaler

Internet

IORs

IORs

Marshaler

Skels

Line Protocol

Impls


All mxn components inherit one interface

All MxN Components inherit one interface

  • All Distributed Objects are Containers

  • They are by nature subdivisible

  • If an interface can make any container “look like” a 1-D vectorthen a MUX is little more than a KELP Mover


Mxnredistributable interface

MxNRedistributable Interface

interface Serializable {

store( in Stream s ); load( in Stream s );};

interface MxNRedistributable extends Serializable {

int getGlobalSize(); local int getLocalSize(); local array<int,1> getLocal2Global(); split ( in array<int,1> maskVector, out array<MxNRedistributable,1> pieces);

merge( in array<MxNRedistributable,1> pieces);};


We saw something similar yesterday

We saw something similar yesterday

  • Kelp uses callbacks for user to define copy, serialization, etc.

  • I’m using an interface that user must implement

  • Kelp uses rectilinear regions

  • I’m using explicit local-global maps(for now)

  • Kelp has a Mover

    • most of the “guts” of the solution

    • that depends on the user callbacks

  • I’m calling it a MUX


Mxnredistributable interface in action

MxNRedistributable Interface in action

  • Last Time

    • I started with object creation

    • I handled problems as they aroze

  • This time

    • I’ll just do the MxN stuff

    • I’ll gloss over details altogether


Example 2 undirected graph1

0

1

2

3

4

5

6

7

8

9

10

11

Example #2: Undirected Graph

0

0

1

2

1

2

3

4

5

3

4

5

6

7

6

7

8

8

9

10

9

10

11

11


Pp minspantree graph

0

1

2

3

4

5

pp

0

graph

require

2

MUX

1

2

0

3

4

5

3

4

5

1

2

6

7

8

5

6

6

7

8

9

10

11

3

4

5

pp

9

10

6

7

8

6

7

8

graph

require

9

10

MUX

9

10

11

11

pp->minSpanTree( graph );

  • MUX queries graph for global size (12)

  • Graph determinesparticulardata layout(blocked)

orb

  • MUX is invoked to guaranteethat layout before render implementation is called

orb


Mux generates communication schedules client server

0

1

2

3

4

5

pp

0, 1, 2, 3

0

graph

require

2

MUX

1

2

0

3

4

5

4, 5

3

4

5

1

2

6

7

8

5

6

6

7

8

9

10

11

3

4

5

pp

6, 7

9

10

6

7

8

6

7

8

graph

require

9

10

MUX

9

10

8, 9, 10, 11

11

11

MUX generates communication schedules (client & server)

orb

orb


Mux opens communication pipes

0

1

2

3

4

5

pp

0, 1, 2, 3

0

graph

require

2

MUX

1

2

0

3

4

5

4, 5

3

4

5

1

2

6

7

8

5

6

6

7

8

9

10

11

3

4

5

pp

6, 7

9

10

6

7

8

6

7

8

graph

require

9

10

MUX

9

10

8, 9, 10, 11

11

11

MUX opens communication pipes

orb

orb


Mux splits graphs with multiple destinations server side

2

3

4

5

3

4

5

0

1

2

3

4

5

6

7

8

pp

6

7

8

0, 1, 2, 3

0

9

10

graph

require

2

MUX

1

2

0

3

4

5

4, 5

3

4

5

1

2

6

7

8

5

6

6

7

8

9

10

11

3

4

5

pp

6, 7

9

10

6

7

8

6

7

8

graph

require

9

10

MUX

9

10

8, 9, 10, 11

11

11

MUX splits graphs with multiple destinations (server-side)

orb

orb


Mux sends pieces through communication pipes persistance

2

3

4

5

3

4

5

0

1

2

3

4

5

6

7

8

pp

6

7

8

0

0

9

10

graph

require

2

MUX

1

1

2

2

0

3

4

5

3

3

4

4

5

5

1

2

6

7

8

5

5

6

6

6

7

8

9

10

11

3

4

5

pp

9

10

6

6

7

7

8

8

6

7

8

graph

require

9

9

10

10

MUX

9

10

11

11

11

MUX sends pieces through communication pipes (persistance)

orb

orb


Mux receives graphs through pipes assembles them client side

2

3

4

5

3

4

5

0

1

2

3

4

5

6

7

8

pp

0

6

7

8

0

0

9

10

graph

1

2

require

2

MUX

1

1

2

2

3

4

5

0

3

4

5

3

3

4

4

5

5

6

7

8

1

2

6

7

8

5

5

6

6

6

7

8

9

10

11

3

4

5

pp

9

10

6

6

7

7

8

8

3

4

5

6

7

8

graph

require

9

9

10

10

6

7

8

MUX

9

10

11

11

9

10

11

11

MUX receives graphs through pipes & assembles them (client side)

orb

orb


Summary

Summary

  • All distributed components are containers and subdivisable

  • The smallest globally addressable unit is an atom

  • MxNRedistributable interface reduces general component MxN problem to a 1-D array of ints

  • MxN problem is a special case of the general problem N handles to M instances

  • Babel is uniquely positioned to contribute a solution to this problem


Tentative research strategy

Java only, no Babel

serialization & RMI built-in

Build MUX

Experiment

Write Paper

Finish 0.5.x line

add serialization

add RMI

Add in technology from Fast Track

Tentative Research Strategy

Fast Track

Sure Track


Closing remarks

Closing Remarks

  • User calls without regard to data distribution

  • Developers code assuming data distributed appropriately

  • Babel does all the redistribution between the two

    • Requires Developers implementing an interface (a.k.a. callbacks)


Open questions

Open Questions

  • Non-general, Optimized Solutions

  • Client-side Caching issues

  • Fault Tolerance

  • Subcomponent Migration

  • Inter vs. Intra component communication

  • MxN , MxP, or MxPxQxN


Mxpxqxn problem

MxPxQxN Problem

Long-Haul Network


Mxpxqxn problem1

MxPxQxN Problem

Long-Haul Network


The end

TheEnd


Tammy dahlgren tom epperly scott kohn gary kumfert

26 Apr 2001

UCRL-VG-143383

Work performed under the auspices of the U. S. Department of Energy by the University of California, Lawrence Livermore National Laboratory under Contract W-7405-Eng-48


  • Login