POSI/CHS/47158/2002 (March 2004-2007) Contact: João Luís Sobral ([email protected]) Goal Provide a...

1
Perform ance com parison ofO bject-O riented and Aspect-O riented im plem entations 0 4 8 12 16 20 24 28 32 4 8 16 32 Processors RayTracerO O RayTracerA O P SorOO SorAOP Prim e Sieve O O Prim e Sieve A OP Fibonacci OO Fibonacci AO P POSI/CHS/47158/2002 (March 2004-2007) Contact: João Luís Sobral ([email protected]) Goal Provide a single code base that efficiently execute on Multi- Core, Cluster and Grid systems Approach Pluggable modules provide non-core functionality: Partition –> task partition among object aggregates Concurrency –> parallel execution / synchronisation Distribution –> object and data distribution Main Results skeleton framework that helps the programmer to develop structured parallel and Grid applications [1] new approach to decompose a parallel application into (un)pluggable modules [2] and mechanisms to compose these modules library of abstractions for concurrent applications [3] that can also be used through code annotations library of aspects for application partitioning [4] run-time system that supports object distribution and automatic granularity control and tuning [5] Selected Publications 1. J. Fernando, J. Sobral, A. Proenca. JaSkel: A Java Skeleton-Based Framework for Structured Cluster and Grid Computing, 6th IEEE Int. Symposium on Cluster Computing and the Grid (CCGrid’06), Singapore, May 2006, IEEE CS press. 2. J. Sobral. Incrementally Developing Parallel Applications with AspectJ, 20th IEEE Int. Parallel & Distributed Processing Symposium (IPDPS’06), Greece, Rhodes, April 2006, IEEE CS press. 3. C. Cunha, J. Sobral, M. Monteiro, Reusable Aspect-Oriented Implementation of Concurrency Patterns and Mechanisms, 5th ACM Int. Conference on Aspect Oriented Software Development (AOSD’06), Bonn, Germany, March 2006, ACM press. 4. J. Sobral, C. Cunha, M. Monteiro, Aspect-Oriented Pluggable Support for Parallel Computing, 6th Int. Meeting of Vector and Parallel Processing (VecPar’2006), Rio de Janeiro, Brazil, July 2006, LNCS vol. 4395, Springer 2007. 5. J. Sobral, J. Fernando. ParC#: Parallel Computing in .Net, Parallel Computing Technologies 2005 (PaCT’05), Russia, September 2005, LNCS vol. 3606, Springer 2005. JG F R ayTracerw hith aspects for partition, concurrency and distribution R ayTracerrt= new R ayTracer(); Im age result= rt.render(0,500); R ayTracerrt= new R ayTracer(); Im age result= rt.render(0,500); rt rt rt rt rt rt rt new thread around():call(*.render(...)){ //redirectto rem ote node return( /*rendered image*/ ); } R ayTracerfarm []=new R ayTracer[4]; R ayTraceraround():call(R ayTracer.new ()) { for(i=0;i<4;i++) farm [i]= new R ayTracer(); return(farm [0]); } Im age around(/*… */):call(*.render(..)){ for(inti=0;i<4;i++) res[i]= farm [i].render( /* s ubinterval*/ ); ...//join sub-im ages saved in res array return( /*merged subimages*/ ); } Im age around(): call(R ayTracer.render()) { (new Thread(){ public void run(){ .render(… ) } }).start(); } R ayTraceraround():call(R ayTracer.new ()){ //requestobjectcreation to rem ote factory //associate rem ote objectto localfake return(/*fake localobject*/); } PPC-VM PPC-VM Portable Parallel Computing based on Virtual Portable Parallel Computing based on Virtual Machines Machines P Purpose No No No Tidy up core f unctionality, debugging , singl e core machi nes No/ Yes Yes No Shared memory parallel mach nes (SMP/M ulti -core) Yes Yes Yes Distributed memory machines (Cluster s/Grids)

Transcript of POSI/CHS/47158/2002 (March 2004-2007) Contact: João Luís Sobral ([email protected]) Goal Provide a...

Page 1: POSI/CHS/47158/2002 (March 2004-2007) Contact: João Luís Sobral (jls@di.uminho.pt) Goal Provide a single code base that efficiently execute on Multi-Core,

Performance comparison of Object-Oriented and Aspect-Oriented implementations

0

4

8

12

16

20

24

28

32

4 8 16 32

Processors

Speed-up

RayTracer OORayTracer AOPSor OOSor AOPPrime Sieve OOPrime Sieve AOPFibonacci OOFibonacci AOP

POSI/CHS/47158/2002 (March 2004-2007) Contact: João Luís Sobral ([email protected])

GoalProvide a single code base that

efficiently execute on Multi-Core, Cluster and Grid systems

GoalProvide a single code base that

efficiently execute on Multi-Core, Cluster and Grid systems

Approach

Pluggable modules provide non-core functionality:

• Partition –> task partition among object aggregates• Concurrency –> parallel execution / synchronisation• Distribution –> object and data distribution

Approach

Pluggable modules provide non-core functionality:

• Partition –> task partition among object aggregates• Concurrency –> parallel execution / synchronisation• Distribution –> object and data distribution

Main Results

• skeleton framework that helps the programmer to develop structured parallel and Grid applications [1]

• new approach to decompose a parallel application into (un)pluggable modules [2] and mechanisms to compose these modules

• library of abstractions for concurrent applications [3] that can also be used through code annotations

• library of aspects for application partitioning [4]• run-time system that supports object distribution and

automatic granularity control and tuning [5]

Main Results

• skeleton framework that helps the programmer to develop structured parallel and Grid applications [1]

• new approach to decompose a parallel application into (un)pluggable modules [2] and mechanisms to compose these modules

• library of abstractions for concurrent applications [3] that can also be used through code annotations

• library of aspects for application partitioning [4]• run-time system that supports object distribution and

automatic granularity control and tuning [5]

Selected Publications

1. J. Fernando, J. Sobral, A. Proenca. JaSkel: A Java Skeleton-Based Framework for Structured Cluster and Grid Computing, 6th IEEE Int. Symposium on Cluster Computing and the Grid (CCGrid’06), Singapore, May 2006, IEEE CS press.

2. J. Sobral. Incrementally Developing Parallel Applications with AspectJ, 20th IEEE Int. Parallel & Distributed Processing Symposium (IPDPS’06), Greece, Rhodes, April 2006, IEEE CS press.

3. C. Cunha, J. Sobral, M. Monteiro, Reusable Aspect-Oriented Implementation of Concurrency Patterns and Mechanisms, 5th ACM Int. Conference on Aspect Oriented Software Development (AOSD’06), Bonn, Germany, March 2006, ACM press.

4. J. Sobral, C. Cunha, M. Monteiro, Aspect-Oriented Pluggable Support for Parallel Computing, 6th Int. Meeting of Vector and Parallel Processing (VecPar’2006), Rio de Janeiro, Brazil, July 2006, LNCS vol. 4395, Springer 2007.

5. J. Sobral, J. Fernando. ParC#: Parallel Computing in .Net, Parallel Computing Technologies 2005 (PaCT’05), Russia, September 2005, LNCS vol. 3606, Springer 2005.

Selected Publications

1. J. Fernando, J. Sobral, A. Proenca. JaSkel: A Java Skeleton-Based Framework for Structured Cluster and Grid Computing, 6th IEEE Int. Symposium on Cluster Computing and the Grid (CCGrid’06), Singapore, May 2006, IEEE CS press.

2. J. Sobral. Incrementally Developing Parallel Applications with AspectJ, 20th IEEE Int. Parallel & Distributed Processing Symposium (IPDPS’06), Greece, Rhodes, April 2006, IEEE CS press.

3. C. Cunha, J. Sobral, M. Monteiro, Reusable Aspect-Oriented Implementation of Concurrency Patterns and Mechanisms, 5th ACM Int. Conference on Aspect Oriented Software Development (AOSD’06), Bonn, Germany, March 2006, ACM press.

4. J. Sobral, C. Cunha, M. Monteiro, Aspect-Oriented Pluggable Support for Parallel Computing, 6th Int. Meeting of Vector and Parallel Processing (VecPar’2006), Rio de Janeiro, Brazil, July 2006, LNCS vol. 4395, Springer 2007.

5. J. Sobral, J. Fernando. ParC#: Parallel Computing in .Net, Parallel Computing Technologies 2005 (PaCT’05), Russia, September 2005, LNCS vol. 3606, Springer 2005.

JGF RayTracer whith aspects for partition, concurrency and distribution

RayTracer rt = new RayTracer();

Image result = rt.render(0,500);

RayTracer rt = new RayTracer();

Image result = rt.render(0,500);

rt

rt rt

rt rt rt

rt

new thread

around() : call (*.render(...)) {

… // redirec t to remote node

return(/*rendered image*/);

}

RayTracer farm[]=new RayTracer[4];

RayTracer around() : call (RayTracer.new()) {for(i=0; i<4; i++)

farm[i] = new RayTracer();re turn(farm[0]);

}

Image around(/* …*/) : call (*.render(..)) {for(int i=0; i<4; i++)

res [i] = farm[i].render(/* s ubinterval*/);... //jo in s ub-images s aved in res arrayreturn(/*merged s ub images */);

}

Image around() : call (RayTracer.render()) {(new Thread() {public vo id run() { … .render(…) }

}).s tart();}

RayTracer around() : call (RayTracer.new()) {… // reques t objec t creation to remote fac tory… // as s oc iate remote object to local fakereturn(/*fake local objec t*/);

}

PPC-VMPPC-VMPortable Parallel Computing based on Virtual MachinesPortable Parallel Computing based on Virtual Machines

Partition

module

Concurrency

module

Distribution

module

Purpose

No No No Tidy up core functionality, debugging, single core machines

No/Yes Yes No Shared memory parallel machines

(SMP/Multi-core) Core functionality

+

Yes Yes Yes Distributed memory machines (Clusters/Grids)