Top Banner
Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent, Josep M. Pérez, Rosa M. Badia, Jesús Labarta
30

Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Dec 14, 2015

Download

Documents

Zoe Carpenter
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

GRID superscalar: a programming paradigm for GRID applications

CEPBA-IBM Research Institute

Raül Sirvent, Josep M. Pérez, Rosa M. Badia, Jesús Labarta

Page 2: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

Outline

• Objective• The essence• User’s interface• Automatic code generation• Run-time features• Programming experiences• Ongoing work• Conclusions

Page 3: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

Objective

• Ease the programming of GRID applications

• Basic idea:

L3

Dir

ec

tory

/Co

ntr

ol

L2 L2 L2

LSU LSUIFUBXU

IDU IDU

IFUBXU

FPU FPU

FX

U

FX

UISU ISU

Grid

ns seconds/minutes/hours

Page 4: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

Outline

• Objective• The essence• User’s interface• Automatic code generation• Current run-time features• Programming experiences• Future work• Conclusions

Page 5: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

The essence

• Assembly language for the GRID– Simple sequential programming, well defined operations and

operands

– C/C++, Perl, …

• Automatic run time “parallelization”– Use architectural concepts from microprocessor design

• Instruction window (DAG), dependence analysis, scheduling, locality, renaming, forwarding, prediction, speculation,…

Page 6: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

The essence

for (int i = 0; i < MAXITER; i++) {

newBWd = GenerateRandom();

subst (referenceCFG, newBWd, newCFG);

dimemas (newCFG, traceFile, DimemasOUT);

post (newBWd, DimemasOUT, FinalOUT);

if(i % 3 == 0) Display(FinalOUT);

}

fd = GS_Open(FinalOUT, R);

printf("Results file:\n"); present (fd);

GS_Close(fd);

Page 7: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

The essenceSubst

DIMEMAS

Post

Subst

DIMEMAS

Post…

GS_open

Subst

DIMEMAS

Post

Subst

DIMEMAS

Post

Subst

DIMEMAS

Post

Subst

DIMEMAS

Post

Subst

DIMEMAS

Post

Display

Display

CIRI Grid

Page 8: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

The essenceSubst

DIMEMAS

Post

Subst

DIMEMAS

Post…

GS_open

Subst

DIMEMAS

Post

Subst

DIMEMAS

Post

Subst

DIMEMAS

Post

Subst

DIMEMAS

Post

Subst

DIMEMAS

Post

Display

Display

CIRI Grid

Page 9: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

Outline

• Objective• The essence• User’s interface• Automatic code generation• Run-time features• Programming experiences• Ongoing work• Conclusions

Page 10: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

• Three components:

– Main program

– Subroutines/functions

– Interface Definition Language (IDL) file

• Programming languages: C/C++, Perl

User’s interface

Page 11: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

• A Typical sequential program

– Main program:

for (int i = 0; i < MAXITER; i++) {

newBWd = GenerateRandom();

subst (referenceCFG, newBWd, newCFG);

dimemas (newCFG, traceFile, DimemasOUT);

post (newBWd, DimemasOUT, FinalOUT);

if(i % 3 == 0) Display(FinalOUT);

}

fd = GS_Open(FinalOUT, R);

printf("Results file:\n"); present (fd);

GS_Close(fd);

User’s interface

Page 12: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

User’s interface

void dimemas(in File newCFG, in File traceFile, out File DimemasOUT){ char command[200]; putenv("DIMEMAS_HOME=/usr/local/cepba-tools"); sprintf(command, "/usr/local/cepba-tools/bin/Dimemas -o %s %s", DimemasOUT, newCFG ); GS_System(command);}

• A Typical sequential program– Subroutines/functions

void display(in File toplot){ char command[500];

sprintf(command, "./display.sh %s", toplot); GS_System(command);}

Page 13: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

User’s interface

• GRID superscalar programming requirements

– Main program: open/close files with• GS_FOpen, GS_Open, GS_FClose, GS_Close

– Subroutines/functions• Temporal files on local directory or ensure uniqueness of name per

subroutine invocation• GS_System instead of system• All input/output files required must be passed as arguments

Page 14: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

interface MC {void subst(in File referenceCFG, in double newBW, out File newCFG);void dimemas(in File newCFG, in File traceFile, out File DimemasOUT);void post(in File newCFG, in File DimemasOUT, inout File FinalOUT);void display(in File toplot)

};

• Gridifying the sequential program

– CORBA-IDL Like Interface: • In/Out/InOut files• Scalar values (in or out)

– The subroutines/functions listed in this file will be executed in a remote server in the Grid.

User’s interface

Page 15: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

Outline

• Objective• The essence• User’s interface• Automatic code generation• Run-time features• Programming experiences• Ongoing work• Conclusions

Page 16: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

Automatic code generation: C

app.idl

app-worker.capp.c app-functions.c

server

gsstubgen

app.h

client

app-stubs.c

Page 17: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

Outline

• Objective• The essence• User interface• Automatic code generation• Run-time features• Programming experiences• Ongoing work• Conclusions

Page 18: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

Run-time features

• Data dependence analysis – Detects RaW, WaR, WaW dependencies based on file parameters

– Tasks’ Directed Acyclic Graph is built based on these dependencies

• File renaming – WaW and WaR dependencies are avoidable with renaming

• Shared disks management– Supports shared working directories: NFS

– Allows shared input directories: mirrors of large DBs

Page 19: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

Run-time features

• Resource brokering and task scheduling– Scheduling policy exploits file locality

– File transfer time vs execution time tradeoff considered

– Tasks submitted for execution as soon as the data dependencies are solved if resources are available

– End of tasks is detected by means of asynchronous callbacks

– Calls to globus:• globus_gram_client_job_request• globus_gram_client_job_status• globus_gram_client_job_cancel• globus_gram_client_callback_allow• globus_poll_blocking

Page 20: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

Run-time features

• Communication between workers and master– Socket and file mechanisms provided

• Checkpointing at task level– Inter-task checkpointing

– Transparent to application developer

• All based in Globus Toolkit C APIs (version 2.x)– Provides authentication and authorization

– File transfers through gsiftp service

– Task handling with gram service

Page 21: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

Outline

• Objective• The essence• User’s interface• Automatic code generation• Run-time features• Programming experiences• Ongoing work• Conclusions

Page 22: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

Programming experiences

• Parameter studies (Dimemas, Paramedir)– Algorithm flexibility

• NAS Grid Benchmarks– Improved component programs flexibility

– Reduced Grid level source code lines

• Bioinformatics application (production)– Improved portability (Globus vs just LoadLeveler)

– Reduced Grid level source code lines

• Pblade solution for bioinformatics

Page 23: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

Outline

• Objective• The essence• User’s interface• Automatic code generation• Run-time features• Programming experiences• Ongoing work• Conclusions

Page 24: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

Ongoing work

• Automatic deployment

Page 25: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

Ongoing work

• fastDNAml– Computes the likelihood of various phylogenetic trees, starting with

aligned DNA sequences from a number of species (Indiana University code)

– Sequential and MPI (grid-enabled) versions available

– Porting to GRID superscalar • Lower pressure on communications than MPI• Simpler code than MPI

Page 26: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

Ongoing work

• Run-time: exception handling try{

for (int n=0; n<=10; n++){

if (n>9) throw "Out of range";

myarray[n]='z';

}

}

catch (char * str){

cout << "Exception: " << str << endl;

}

• Interesting case: throw in workers, catch in main program

Page 27: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

Ongoing work

• OGSA oriented resource broker, based on Globus Toolkit 3.x. • And more future work:

– Bindings to other basic middlewares• GAT, Ninf-G2

– New language bindings (shell script)

– Enhancements in the run-time performance guided by the performance analysis

Page 28: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

Conclusions

• Presentation of the ideas of GRID superscalar

• Exists a viable way to ease the programming of Grid applications

• GRID superscalar run-time enables– Use of the resources in the Grid

– Exploiting the existent parallelism

Page 29: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

How GAT can help us

• Middleware in a higher level (skip Globus details)• Avoid changing when Globus changes• Abstraction for using other Grid Middlewares

• Resource Broker• Intra-Task checkpointing mechanism

• Interesting GATObjects: – GATFile (GATFile_Copy, GATFile_Delete)

– GATResourceDescription, GATResourceBroker, GATJob

Page 30: Workshop on Grid Applications Programming, July 2004 GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Raül Sirvent,

Workshop on Grid Applications Programming, July 2004

More information

• GRID superscalar home page:

http://people.ac.upc.es/rosab/index_gs.htm

• Rosa M. Badia, Jesús Labarta, Raül Sirvent, Josep M. Pérez, José M. Cela, Rogeli Grima, “Programming Grid Applications with GRID Superscalar”, Journal of Grid Computing, Volume 1 (Number 2): 151-170 (2003).