34
ProActive components and legacy code Matthieu MOREL

ProActive components and legacy code Matthieu MOREL

Embed Size (px)

Citation preview

Page 1: ProActive components and legacy code Matthieu MOREL

ProActive components and legacy code

Matthieu MOREL

Page 2: ProActive components and legacy code Matthieu MOREL

Objective : a framework for Grid components

Facilitating the design and implementation of complex distributed systems

Leveraging the ProActive libraryProActive components benefit from underlying features

Allowing reuse of legacy components (e.g. MPI)

Providing tools for defining, assembling and monitoring distributed components

Page 3: ProActive components and legacy code Matthieu MOREL

Overview

Component-based programmingFractal component modelTowards Grid componentsOn-going and future works

Page 4: ProActive components and legacy code Matthieu MOREL

Overview

Component-based programmingFractal component modelTowards Grid componentsOn-going and future works

Page 5: ProActive components and legacy code Matthieu MOREL

A CORBA Component

MyBusinessComponent

Component interface

Facets

Eventsources

Eventsinks

Attributes

Receptacles

OF

FE

RE

DR

EQ

UIR

ED

Page 6: ProActive components and legacy code Matthieu MOREL

Component based programming

Component = software unit, deployment unit

Industrial acceptance : EJBs, CCM, COM …

3 key concepts : 1. Encapsulation

Black boxes, offered and required services, configuration 2. Composition

Design of complex systems Hierarchical organization into sub-systems

3. Description ADL Logical and geographical composition Tools

REUSABILITYCUSTOMIZATION

COMPLEXITY HANDLING

HIGH ABSTRACTION LEVEL

Page 7: ProActive components and legacy code Matthieu MOREL

Overview

Component-based programmingFractal component modelFeatures for Grid computingOn-going and future works

Page 8: ProActive components and legacy code Matthieu MOREL

Fractal component model

Defined by Bruneton, Coupaye, Stefani, INRIA & FTKey features :

Lightweight and extensible Recursive Dynamic

Reference implementation : Julia (FT)New implementation based on active objectsStandard tools in the community (ADL, GUI)

Page 9: ProActive components and legacy code Matthieu MOREL

Content

Cell analogy

CONTROLLER

CONTENT

Page 10: ProActive components and legacy code Matthieu MOREL

Content

Interface = access point

Page 11: ProActive components and legacy code Matthieu MOREL

Content

Hierarchical model

Page 12: ProActive components and legacy code Matthieu MOREL

Content

Binding = interaction

Page 13: ProActive components and legacy code Matthieu MOREL

Content

Binding = interaction

Page 14: ProActive components and legacy code Matthieu MOREL

SUPER BINDING LIFE CYCLE CONTENT

Content

Controllers : non-functional properties

Page 15: ProActive components and legacy code Matthieu MOREL

Overview

Component-based programmingFractal component modelTowards Grid componentsOn-going and future works

Page 16: ProActive components and legacy code Matthieu MOREL

An activity, a process, …potentially in its own JVM

Primitive

Composite: Hierarchical, and

Distributed over machines

Parallel: Composite

+ Multicast (group)

Components for the GRID

Page 17: ProActive components and legacy code Matthieu MOREL

Distributed Components

1 component can be distributed over several hosts

Page 18: ProActive components and legacy code Matthieu MOREL

Components vs. Activities and JVMs

Activity JVM Component

Components orthogonal

to activities and JVMs :

contain activities,

span across several JVMs

A way to globally manipulate

distributed and running activities

Page 19: ProActive components and legacy code Matthieu MOREL

Group proxyGroup proxy

Multicaston client interface

Multicast on inner server interface

Groups in components

Page 20: ProActive components and legacy code Matthieu MOREL

Migration capabilities of composites

Migrate sets of components, including composites

Page 21: ProActive components and legacy code Matthieu MOREL

Migration capabilities of composites

Migrate sets of components, including composites

Page 22: ProActive components and legacy code Matthieu MOREL

Co-allocation, re-distribution

e.g. upon communication intensive phase

Page 23: ProActive components and legacy code Matthieu MOREL

Co-allocation, re-distribution

e.g. upon communication intensive phase

Page 24: ProActive components and legacy code Matthieu MOREL

Co-allocation, re-distribution

e.g. upon communication intensive phase

At runtime or design time (ADL)

Page 25: ProActive components and legacy code Matthieu MOREL

getA()

getB()

getAandB()

First Class Futures

1 : Synchronous method calls

getA()

getB()

getAandB()

getB()

getA()getAandB()

Page 26: ProActive components and legacy code Matthieu MOREL

getA()

getB()

getAandB() getA()

getB()

getAandB()

getB()

getA()getAandB()

First Class Futures

2 : Asynchronous method calls, full-fledge wait-by-necessity

Non-blocking method calls

value of A

value of B

Process flow is not blocked by asynchronous computations

Page 27: ProActive components and legacy code Matthieu MOREL

Overview

Component-based programmingFractal component modelTowards Grid componentsOn-going and future works

Page 28: ProActive components and legacy code Matthieu MOREL

On-going work : optimizations

Dynamic shortcuts for distributed bindings

(through tensioning)

1 remote call

Page 29: ProActive components and legacy code Matthieu MOREL

On-going work : GUI

Page 30: ProActive components and legacy code Matthieu MOREL

Perspective : legacy code wrappers

MPI Code (C/Fortran)method calls

messages on tags

messages on tags

method calls

Page 31: ProActive components and legacy code Matthieu MOREL

Perspective : MxN communications

M components

N components

GATHERING

SCATTERING

REDISTRIBUTION from M to N

Page 32: ProActive components and legacy code Matthieu MOREL

Conclusion

Page 33: ProActive components and legacy code Matthieu MOREL

Conclusion : ProActive Components

Encapsulation : Formed from one (or several) Active Object Executing on one or several JVMs Server ports: Java Interfaces Client ports: Java Attributes

Composition : Composite components : hierarchical Point-to-point or Group communication between components Parallel component : multicast of calls in composites,

redistribution

Description : XML definition of primitive and composite (ADL) Virtual nodes capture the deployment capacities and needs

Page 34: ProActive components and legacy code Matthieu MOREL

Merci!

Questions?

Contact : Matthieu Morel