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

Slides:



Advertisements
Similar presentations
Programming a service Cloud Rosa M. Badia, Jorge Ejarque, Daniele Lezzi, Raul Sirvent, Enric Tejedor Grid Computing and Clusters Group Barcelona Supercomputing.
Advertisements

National Institute of Advanced Industrial Science and Technology Ninf-G - Core GridRPC Infrastructure Software OGF19 Yoshio Tanaka (AIST) On behalf.
Three types of remote process invocation
User-driven resource selection in GRID superscalar Last developments and future plans in the framework of CoreGRID Rosa M. Badia Grid and Clusters Manager.
Generic MPI Job Submission by the P-GRADE Grid Portal Zoltán Farkas MTA SZTAKI.
Grid Resource Allocation Management (GRAM) GRAM provides the user to access the grid in order to run, terminate and monitor jobs remotely. The job request.
Exception Handling. 2 Two types of bugs (errors) Logical error Syntactic error Logical error occur  due to poor understanding of the problem and solution.
GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers.
Condor-G: A Computation Management Agent for Multi-Institutional Grids James Frey, Todd Tannenbaum, Miron Livny, Ian Foster, Steven Tuecke Reporter: Fu-Jiun.
A Computation Management Agent for Multi-Institutional Grids
LUNARC, Lund UniversityLSCS 2002 Transparent access to finite element applications using grid and web technology J. Lindemann P.A. Wernberg and G. Sandberg.
ProActive Task Manager Component for SEGL Parameter Sweeping Natalia Currle-Linde and Wasseim Alzouabi High Performance Computing Center Stuttgart (HLRS),
GridSuperscalar A programming model for GRID applications José Mª Cela
CLUSTER 2005 Tutorial Boston, 26th September 2005 Programming with GRID superscalar Rosa M. Badia Toni Cortes Pieter Bellens, Vasilis Dialinos, Jesús Labarta,
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © 2006 GridCOMP Grids Programming with components. An.
USING THE GLOBUS TOOLKIT This summary by: Asad Samar / CALTECH/CMS Ben Segal / CERN-IT FULL INFO AT:
GRID superscalar: a programming model for the Grid Raül Sirvent Pardell Advisor: Rosa M. Badia Sala Doctoral Thesis Computer Architecture Department Technical.
Milos Kobliha Alejandro Cimadevilla Luis de Alba Parallel Computing Seminar GROUP 12.
Workload Management Massimo Sgaravatto INFN Padova.
Grids and Globus at BNL Presented by John Scott Leita.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
CGI Programming Languages Web Based Software Development July 21, 2005 Song, JaeHa.
Resource Management Reading: “A Resource Management Architecture for Metacomputing Systems”
Programming the Cell Multiprocessor Işıl ÖZ. Outline Cell processor – Objectives – Design and architecture Programming the cell – Programming models CellSs.
EUROPEAN UNION Polish Infrastructure for Supporting Computational Science in the European Research Space Cracow Grid Workshop’10 Kraków, October 11-13,
The SAM-Grid Fabric Services Gabriele Garzoglio (for the SAM-Grid team) Computing Division Fermilab.
1 Input/Output. 2 Principles of I/O Hardware Some typical device, network, and data base rates.
Grid Toolkits Globus, Condor, BOINC, Xgrid Young Suk Moon.
Introduction to Parallel Programming MapReduce Except where otherwise noted all portions of this work are Copyright (c) 2007 Google and are licensed under.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Introduction to .Net Framework
SC 2004, Pittsburgh, Nov GRID superscalar: a programming paradigm for GRID applications CEPBA-IBM Research Institute Rosa M. Badia, Jesús Labarta,
Exception Handling. 2 Two types of bugs (errors) Logical error Syntactic error Logical error occur  Due to poor understanding of the problem and solution.
Track 1: Cluster and Grid Computing NBCR Summer Institute Session 2.2: Cluster and Grid Computing: Case studies Condor introduction August 9, 2006 Nadya.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
Replication & EJB Graham Morgan. EJB goals Ease development of applications –Hide low-level details such as transactions. Provide framework defining the.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Job Submission Condor, Globus, Java CoG Kit Young Suk Moon.
Transparent Grid Enablement Using Transparent Shaping and GRID superscalar I. Description and Motivation II. Background Information: Transparent Shaping.
Grid Computing I CONDOR.
Through the development of advanced middleware, Grid computing has evolved to a mature technology in which scientists and researchers can leverage to gain.
GRAM5 - A sustainable, scalable, reliable GRAM service Stuart Martin - UC/ANL.
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
Evaluation of Agent Teamwork High Performance Distributed Computing Middleware. Solomon Lane Agent Teamwork Research Assistant October 2006 – March 2007.
Master Worker Paradigm Support in Software Component Models Hinde Bouziane, Christian Pérez PARIS Research Team INRIA/IRISA Rennes ANR CIGC LEGO (ANR-05-CICG-11)
CellSs: A Programming Model for the Cell BE Architecture Pieter Bellens, Josep M. Perez, Rosa M. Badia, Jesus Labarta Barcelona Supercomputing Center (BSC-CNS)
Resource Brokering in the PROGRESS Project Juliusz Pukacki Grid Resource Management Workshop, October 2003.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Grid Execution Management for Legacy Code Applications Grid Enabling Legacy Code Applications Tamas Kiss Centre for Parallel.
ServiceSs, a new programming model for the Cloud Daniele Lezzi, Rosa M. Badia, Jorge Ejarque, Raul Sirvent, Enric Tejedor Grid Computing and Clusters Group.
The EDGeS project receives Community research funding 1 Porting Applications to the EDGeS Infrastructure A comparison of the available methods, APIs, and.
Interactive Workflows Branislav Šimo, Ondrej Habala, Ladislav Hluchý Institute of Informatics, Slovak Academy of Sciences.
CSIT 220 (Blum)1 Remote Procedure Calls Based on Chapter 38 in Computer Networks and Internets, Comer.
Globus Grid Tutorial Part 2: Running Programs Across Multiple Resources.
Nguyen Tuan Anh Page 1 Grid Computing – Master Course 2007 Grid Computing Dr. Nguyen Tuan Anh Contacts: Tel: (84-8)
Globus: A Report. Introduction What is Globus? Need for Globus. Goal of Globus Approach used by Globus: –Develop High level tools and basic technologies.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
.NET Mobile Application Development XML Web Services.
1 RMI Russell Johnston Communications II. 2 What is RMI? Remote Method Invocation.
© Geodise Project, University of Southampton, Workflow Support for Advanced Grid-Enabled Computing Fenglian Xu *, M.
Pipeline Execution Environment
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
Chapter 40 Remote Method Invocation
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
Chapter 46 Remote Method Invocation
Chapter 46 Remote Method Invocation
Overview of Workflows: Why Use Them?
Application Programmers view
Presentation transcript:

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

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

Workshop on Grid Applications Programming, July 2004 Objective Ease the programming of GRID applications Basic idea: Grid  ns  seconds/minutes/hours

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

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,…

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);

Workshop on Grid Applications Programming, July 2004 The essence Subst DIMEMAS Post Subst DIMEMAS Post … GS_open Subst DIMEMAS Post Subst DIMEMAS Post Subst DIMEMAS Post Subst DIMEMAS Post Subst DIMEMAS Post Display CIRI Grid

Workshop on Grid Applications Programming, July 2004 The essence Subst DIMEMAS Post Subst DIMEMAS Post … GS_open Subst DIMEMAS Post Subst DIMEMAS Post Subst DIMEMAS Post Subst DIMEMAS Post Subst DIMEMAS Post Display CIRI Grid

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

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

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

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); }

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

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

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

Workshop on Grid Applications Programming, July 2004 Automatic code generation: C app.idl app-worker.c app.capp-functions.c server gsstubgen app.h client app-stubs.c

Workshop on Grid Applications Programming, July 2004 Outline Objective The essence User interface Automatic code generation Run-time features Programming experiences Ongoing work Conclusions

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

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

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

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

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

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

Workshop on Grid Applications Programming, July 2004 Ongoing work Automatic deployment

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

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

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

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

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

Workshop on Grid Applications Programming, July 2004 More information GRID superscalar home page: 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): (2003).