Hinde Bouziane – CBHPC’08 – 16-17 October 2008
Marco ALDINUCCI and Marco DANELUTTO
UNIPI - University of Pisa (Italy)
Hinde Lilia BOUZIANE and Christian PEREZ
Projet-team GRAAL - INRIA Rhône-Alpes - ENS Lyon (France)
Towards Software Component Assembly Language Enhanced with - - PowerPoint PPT Presentation
Towards Software Component Assembly Language Enhanced with Workflows and Skeletons Marco ALDINUCCI and Marco DANELUTTO UNIPI - University of Pisa (Italy) Hinde Lilia BOUZIANE and Christian PEREZ Projet-team GRAAL - INRIA Rhne-Alpes - ENS
Hinde Bouziane – CBHPC’08 – 16-17 October 2008
UNIPI - University of Pisa (Italy)
Projet-team GRAAL - INRIA Rhône-Alpes - ENS Lyon (France)
Hinde Bouziane – CBHPC’08 – 16-17 October 2008 2
Hinde Bouziane – CBHPC’08 – 16-17 October 2008 3
Mechanics Thermal Optics Dynamics
LAN WAN SAN SAN
programming simply
programming independently
Hinde Bouziane – CBHPC’08 – 16-17 October 2008 4
PROVIDED PORTS REQUIRED PORTS
(client interfaces) (server interfaces)
Hinde Bouziane – CBHPC’08 – 16-17 October 2008 5
ADL
instanceComp: a: A, b: B, c: C, d: D; connections: a.pA1 <-> b.pB; c.pC <-> d.pD2; d.pD1 <-> a.pA2;
a b c
pA1 pB pC pD2
d
pD1 pA2
Hinde Bouziane – CBHPC’08 – 16-17 October 2008 6
network network
step1 step2 step3
t A B C A B C active running
Hinde Bouziane – CBHPC’08 – 16-17 October 2008 7
Hinde Bouziane – CBHPC’08 – 16-17 October 2008 8
end start
C B A
Hinde Bouziane – CBHPC’08 – 16-17 October 2008 9
component Example { … parallel parCtrl { dataIn Double inPar <= a.outA; component B { dataIn Double inB; clientPort Compute pB; … }; component C { dataIn Double inC; serverPort Compute pC; … }; instance B b; instance C c; connect b.inB to parCtrl.inPar; connect c.inC to parCtrl.inPar; connect b.pB to c.pC; // instructions section : exectask (a); section : exectask (b); } // end parallel … }
C B A D
pC pB
inB inC inPar
Hinde Bouziane – CBHPC’08 – 16-17 October 2008 10
Pipeline, farm, …
Map (independent forAll), reduce, …
Hinde Bouziane – CBHPC’08 – 16-17 October 2008 11
sequential int a float b pipe p int int float float
p1 p2 p3
pipe pp farm f
pp1 pp3 w w
emitter collector
float float int
int int
int
compute in (int a) out (float b) $ sequential code $ end pipe p in (int a) out (float b) p1 in (a) out (float b1) p2 in (b1) out (int b2) p3 in (b2) out (b) end pipe farm f in (int af) out(int bf) w in (af) out(bf) end farm pipe pp in (float a) out(float b) pp1 in (b) out (int b1) f in (b1) out (b2) pp3 in (b2) out (b) end pipe
Hinde Bouziane – CBHPC’08 – 16-17 October 2008 12
Hinde Bouziane – CBHPC’08 – 16-17 October 2008 13
Hinde Bouziane – CBHPC’08 – 16-17 October 2008 14
(temporal dimension)
step3 step1
pipe b
p1 p2 p3
a Parallel step2
Hinde Bouziane – CBHPC’08 – 16-17 October 2008 15
inSkel
long float float long
stream ports
inSkel
long float float long
p1 p2 p3 pipe
A B
1 n 1 n
forAll … setOut... wait n data before task execution
Hinde Bouziane – CBHPC’08 – 16-17 October 2008 16
w w farm step2
step1 step3
component Example{ … Step1 and Step3 components… farm Step2{ inputSkel double inS2;
worker sequential w { inputSkel double inW;
component Worker{ streamIn double inW; streamOut string outW; }; connect outW to Worker.outW; connect Worker.inW to inW; }; instances: Step1 step1; Step2 step2; Step3 step3; … Connexions step1 <=> step2 <=> step3 … sequence ApplMain{ exectask(step1); exectask(step2); exectask(step3); };
Hinde Bouziane – CBHPC’08 – 16-17 October 2008 17
Check
Split
FingerPrintMatcher (Functional replication skeleton)
GateAdmin
MGR Gate Gate
Gate
w w
Split MGR C E
w w
Hinde Bouziane – CBHPC’08 – 16-17 October 2008 18
Hinde Bouziane – CBHPC’08 – 16-17 October 2008 19
Hinde Bouziane – CBHPC’08 – 16-17 October 2008 20
Hinde Bouziane – CBHPC’08 – 16-17 October 2008 21
Hinde Bouziane – CBHPC’08 – 16-17 October 2008 22