250 likes | 371 Views
COMP Superscalar: Bringing GRID superscalar and GCM together. Enric Tejedor Universitat Politècnica de Catalunya etejedor@ac.upc.edu. Rosa M. Badia Barcelona Supercomputing Center rosa.m.badia@bsc.es. V ProActive and GCM User Group, GridCOMP conference
E N D
COMP Superscalar: Bringing GRID superscalar and GCM together Enric Tejedor Universitat Politècnica de Catalunya etejedor@ac.upc.edu Rosa M. Badia Barcelona Supercomputing Center rosa.m.badia@bsc.es V ProActive and GCM User Group, GridCOMP conference October 21, 2008. INRIA, Sophia Antipolis, France
Outline • Introduction • Grid Component Model • GRID superscalar • Programming model • Runtime operation • Initialisation • Task processing • Finalisation and error handling • Conclusions
Basic concepts • The Grid Component Model (GCM) • CoreGRID NoE, GridCOMP • Distributed, based on Fractal, intended for the Grid • GRID superscalar • Framework to ease the development of Grid-unaware applications • Simple programming model: Grid as transparent as possible • Runtime that optimises the performance of the application (exploiting possible concurrency)
A componentised Grid framework • GRID superscalar is suitable to benefit from the GCM features • Componentisation process: identify the inner functionalities of the runtime, and assign each one to a separate component • Result: COMP Superscalar, whose runtime gains in: • Reusability • Flexibility • Deployability • Separation of concerns • Ease of development
T10 T20 T40 T30 T50 T11 T21 T41 T31 T51 T12 … Programming model Parallel Resources (multicore,SMP, cluster, grid) Synchronization, results transfer Resource 1 Resource 2 Task selection + parameters direction (input, output, inout) Sequential Application Resource 3 ... for (i=0; i<N; i++){ T1 (data1, data2); T2 (data4, data5); T3 (data2, data5, data6); T4 (data7, data8); T5 (data6, data8, data9); } ... . . . Resource N Scheduling, data transfer, task execution Task graph creation based on data precedence
COMPSs programming model public interface SumItf { @ClassName(“example.Sum") @MethodConstraints(OSType = "Linux") void genRandom( @ParamMetadata(type = Type.FILE, direction = Direction.OUT) String f ); @ClassName(“example.Sum") ... } initialize(f1); for (int i = 0; i < 2; i++) { genRandom(f2); add(f1, f2); } print(f2); Java application Java interface Implementation Task constraints Parameter metadata
Java app code Annotated interface input Custom Loader inserts calls to uses Javassist COMPSs runtime Custom Java Class Loader
Implementation details • Base technologies: • Java as programming language • ProActive: implementation of the GCM model, used to build the components • JavaGAT: used for job submission and file transfer
Initialization • Multicast invocation • Forwarded to all subcomponents JM TA TS init() FM FIP FTM
Initialization • Multicast invocation • Reduction of return values JM TA TS Reduction FM Reduction FIP FTM
T3 genRd T1 genRd f1 f1 T2 add T4 add f2 Task processing (1) • Application submits task • Task Analyser receives the request TA TS JM executeTask(…) FM FIP FTM
Task processing (2) • File Information Provider is contacted • File accesses of the task are registered JM TA TS executeTask(…) FM FIP FTM
Task processing (3) • Task Analyser discovers dependencies • Dependency-free tasks are sent for scheduling TA TS JM executeTask(…) FM FIP FTM
Task processing (4) • Task Scheduler decides where to execute tasks • Job Manager is informed of this decision Task constraints Resource capabilities TS JM TA Scheduling algorithm executeTask(…) FM FIP FTM
Task processing (5) • Job Manager checks the necessary file transfers • File Transfer Manager actually performs them TA TS JM executeTask(…) FM GAT FIP FTM
Task processing (6) • FTM informs of the end of transfers for a task • Task Grid job, submitted for execution GAT TA TS JM executeTask(…) FM FIP FTM
Task processing (7) • Callback for the end of a job is received • The notification is forwarded to the Task Analyser GAT TA TS JM executeTask(…) FM FIP FTM
Safe stopping process for the runtime • COMPSs subcomponents have data dependencies • Modification of the Life Cycle Controller • Components stopped in a safe order: TS, TA, JM, FTM, FIP • Otherwise, a deadlock could happen LCC TA TA TS JM FM FIP FTM
Conclusions • COMP Superscalar: componentised version of GRID superscalar • GCM-based • Hierarchical runtime: separation of concerns • Task scheduling, file and resource management • Straightforward programming model for Grid-unaware Java applications • Feedback about GCM-ProActive • Component distribution • Performance: no noticeable overhead for a medium number of tasks • Component composition and dynamic reconfiguration: Grid IDE