Pseudo dynamic DAG control Version 1. Outline Goal Solution Restrictions Example Case Study.

Slides:



Advertisements
Similar presentations
Generic MPI Job Submission by the P-GRADE Grid Portal Zoltán Farkas MTA SZTAKI.
Advertisements

COMMUNICATING SEQUENTIAL PROCESSES C. A. R. Hoare The Queen’s University Belfast, North Ireland.
LPDS MTA SZTAKI Equation Solver A Grid solution Important hint: A follow up example demonstrating the Parameter Study solution for the mass calculations.
Introduction to C Programming
 2000 Prentice Hall, Inc. All rights reserved. Chapter 2 - Introduction to C Programming Outline 2.1Introduction 2.2A Simple C Program: Printing a Line.
Introduction to C Programming
Exception Handling Introduction Exception handling is a mechanism to handle exceptions. Exceptions are error like situations. It is difficult to decide.
Haga clic para cambiar el estilo de título Haga clic para modificar el estilo de subtítulo del patrón DIRAC Framework A.Casajus and R.Graciani (Universitat.
06/08/10 PBS, LSF and ARC integration Zoltán Farkas MTA SZTAKI LPDS.
EGEE-II INFSO-RI Enabling Grids for E-sciencE Supporting MPI Applications on EGEE Grids Zoltán Farkas MTA SZTAKI.
Introduction to EMF Server Communication and Cases Beta Testing November 4, 2009.
Linux+ Guide to Linux Certification, Second Edition
 2007 Pearson Education, Inc. All rights reserved Introduction to C Programming.
© Lethbridge/Laganière 2001 Chap. 3: Basing Development on Reusable Technology 1 Let’s get started. Let’s start by selecting an architecture from among.
Introduction to C Programming
Shell Programming 1. Understanding Unix shell programming language: A. It has features of high-level languages. B. Convenient to do the programming. C.
C++ fundamentals.
Introduction to Java Appendix A. Appendix A: Introduction to Java2 Chapter Objectives To understand the essentials of object-oriented programming in Java.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Comp2513 Forms and CGI Server Applications Daniel L. Silver, Ph.D.
Week 7 Working with the BASH Shell. Objectives  Redirect the input and output of a command  Identify and manipulate common shell environment variables.
CMPS 211 JavaScript Topic 1 JavaScript Syntax. 2Outline Goals and Objectives Goals and Objectives Chapter Headlines Chapter Headlines Introduction Introduction.
© Copyright 1992–2005 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Tutorial 5 – Dental Payment Application: Introducing.
Linux+ Guide to Linux Certification, Third Edition
LPDS MTA SZTAKI Equation Solver Light A Grid solution.
Parameter Study (PS) Principles & Practices Note This document uses as starting example the non PS case discussed in document EquationSolver.ppt If you.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Chapter 2 Chapter 2 - Introduction to C Programming.
Shell Programming. Creating Shell Scripts: Some Basic Principles A script name is arbitrary. Choose names that make it easy to quickly identify file function.
Introduction to C Programming Angela Chih-Wei Tang ( 唐 之 瑋 ) Department of Communication Engineering National Central University JhongLi, Taiwan 2010 Fall.
1 Structuring Systems Requirements Use Case Description and Diagrams.
Server to Server Communication Redis as an enabler Orion Free
CMSC 104: Peter Olsen, Fall 99Lecture 9:1 Algorithms III Representing Algorithms with pseudo-code.
The EDGeS project receives Community research funding 1 Porting Applications to the EDGeS Infrastructure A comparison of the available methods, APIs, and.
Parameter Study Principles & Practices. What is Parameter Study? Parameter study is the application of a single algorithm over a set of independent inputs:
>> PHP: Insert Query & Form Processing. Insert Query Step 1: Define Form Variables Step 2: Make DB Connection Step 3: Error Handling Step 4: Define the.
Chapter 4 Control Structures I. Chapter Objectives Learn about control structures Examine relational and logical operators Explore how to form and evaluate.
 2008 Pearson Education, Inc. All rights reserved JavaScript: Introduction to Scripting.
Parameter Study Principles & Practices. Outline Data Model of the PS Part I Simple PS –Generating simple PS Workflow by introducing PS Input port – using.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Chapter 2 - Introduction to C Programming Outline.
Condor Project Computer Sciences Department University of Wisconsin-Madison Condor and DAGMan Barcelona,
Christian Stiller Technical Account Manager SOA-23: Enterprise Integration Patterns in Sonic ™ ESB.
Linux+ Guide to Linux Certification, Second Edition
 2007 Pearson Education, Inc. All rights reserved. A Simple C Program 1 /* ************************************************* *** Program: hello_world.
Application Specific Module Tutorial Zoltán Farkas, Ákos Balaskó 03/27/
Perfecto Mobile Automation
07/02/2012 WS-PGRADE/gUSE in use Lightweight introduction Zoltán Farkas MTA SZTAKI LPDS.
1 COMS 261 Computer Science I Title: C++ Fundamentals Date: September 15, 2004 Lecture Number: 11.
Grid Execution Management for Legacy Code Architecture Exposing legacy applications as Grid services: the GEMLCA approach Centre.
Remote Api Tutorial How to call WS-PGRADE workflows from remote clients through the http protocol?
4 - Conditional Control Structures CHAPTER 4. Introduction A Program is usually not limited to a linear sequence of instructions. In real life, a programme.
RI EGI-TF 2010, Tutorial Managing an EGEE/EGI Virtual Organisation (VO) with EDGES bridged Desktop Resources Tutorial Robert Lovas, MTA SZTAKI.
Linux Administration Working with the BASH Shell.
OPERATORS IN C CHAPTER 3. Expressions can be built up from literals, variables and operators. The operators define how the variables and literals in the.
1 Lecture 2 - Introduction to C Programming Outline 2.1Introduction 2.2A Simple C Program: Printing a Line of Text 2.3Another Simple C Program: Adding.
Chapter 2 - Introduction to C Programming
Remote Api Tutorial How to call WS-PGRADE workflows from remote clients through the http protocol?
Lightweight introduction
Lightweight introduction
Chapter 2 - Introduction to C Programming
What is Bash Shell Scripting?
Unit# 9: Computer Program Development
Chapter 2 - Introduction to C Programming
Chapter 2 - Introduction to C Programming
Program Design Introduction to Computer Programming By:
Chapter 2 - Introduction to C Programming
Chapter 2 - Introduction to C Programming
William Stallings Data and Computer Communications
An Introduction to Linux
Chapter 2 - Introduction to C Programming
Introduction to C Programming
Presentation transcript:

Pseudo dynamic DAG control Version 1

Outline Goal Solution Restrictions Example Case Study

Goal The user should be able to redirect the control in his workflow upon the outcome of any job. The exit value set by the executable of the user’s job determines weather a job fails or succeeds The failed job therefore should not stop the overall operation, and no real subsequent computational activity must be started in the branch proved to be false. The solution should be a clean “user level” one not requesting any change in the P-GRADE Portal middleware

The Solution The solution is the introduction of a suggested Job template where the frame of the job is standardized.

Solution details Enveloping the executable of the original job in a standard wrapper program which terminates as TRUE. The wrapper program is written in C and downloadable as lyes/PseudoDynamicDAGControl/wrapper.exe Adding standard logical Input / Output channels to the wrapped job to control the flow

Restriction of the solution The solution handles only internal (programmed) job failures Failures due to the environment (resource, authentication and communication problems) are recognized by the DAGMAN and can be handled by the Rescue feature of the P-GRADE Portal

EXECUTABLE_INPUT port Original input files Modified job: If(LOG_INPUT.value) LOG_INPUT.value= Executable().exit; TRUE_OUTPUT.value = LOG_INPUT.value; FALSE_OUTPUT.value = ! LOG_OUTPUT.value; Original output files I/O convention for Job Wrapper Extension of an original job LOG_INPUT port TRUE_OUTPUT port FALSE_OUTPUT port Original job: Executable();

InputData LOG_INPUT F_OUTPUTT_OUTPUT OutputData Fake Output gen. T_OUTPUT LOG_INPUT execute InputData LOG_INPUT F_OUTPUTT_OUTPUT OutputData LOG_INPUT execute InputData LOG_INPUT F_OUTPUTT_OUTPUT OutputData LOG_INPUT Fake Output gen. T_OUTPUTF_OUTPUT T_OUTPUT Non Zero (false) exit value on “execute” activates the subsequent jobs connected to the F(ALSE)_OUTPUT FALSE value on LOG_INPUT activates the subsequent jobs connected to the F(ALSE)_OUTPUT Real Output data will be forwarded only if the user job “execute” succeeds Animation of wrapper job operation Zero (true) exit value on “execute” activates the subsequent jobs connected to the T(RUE)_OUTPUT “execute” may return false or true exit value TRUE on Logical input triggers the execution of the program of the user Possible states I II III Token with value TRUE or FALSE arrives on LOG_INPUT In the different cases pro forma (fake) output will be generated to “cheat” the DAGMAN

RULES FOR EXTENDED JOBS The Job Executable is a special wrapper program (w rapper.exe ) The genuine (user) executable returns the exit value Two additional input Ports and two additional output Ports are introduced each with standard Internal File Name: the genuine executable is associated as “ EXECUTABLE_INPUT ”, the file delivering the executing permission is “ LOG_INPUT ”, the name of files delivering the propagated permissions for the subsequent jobs in the proper direction are “ TRUE_OUTPUT ” and “ FALSE_OUTPUT ” The logical input and output ports accept special files with content { TRUE | FALSE } The Internal File Names of the output files which may be produced by the user executable must be listed after the genuine arguments separated by the keyword –outputs. This list is needed because if the LOG_INPUT delivers FALSE value or the user job fails then the wrapper must create pro forma (fake) output data files substituting the not running or not properly running executable of the user. In the lack of these files the DAGMAN would abort the job while attempting to copy the not existing files to the subsequent jobs.

EXAMPLE: IF(C1) E1 ELSE IF(C2) E2 ELSE E3 Owerview

EXAMPLE: IF(C1) E1 ELSE IF(C2) E2 ELSE E3 Detailes new LOG_INPUT port (Value: TRUE,FALSE) Job executable is the the standard “wrapper.exe” original input data port new EXECUTABLE_INPUT port to upload the genuine executable new TRUE_OUTPUT port (value: TRUE,FALSE) Each Internal File Name of files which can be produced by the genuine user executable must be listed after the separator attribute -outputs original output data port new FALSE_OUTPUT branch (value:TRUE,FALSE)

Example IF(C1) E1 ELSE IF(C2) E2 ELSE E3 Environment EXECUTABLE_INPUT LOG_INPUT TRUE_OUTPUT TRUE FALSE_OUTPUT A LOG_INPUT port not connected to any (logical) output ports must be associated to a file containing the ascii string “TRUE”

II Part (A case study) The case study is an IF THEN ELSE type simple workflow containing three jobs. The tested application can be downloaded as: DynamicDAGControl/TestProgram/SZTAKI_hermann_IF _THEN_ELSE_fork_seegrid.tar.gzSZTAKI_hermann_IF _THEN_ELSE_fork_seegrid.tar.gz

II Part (Case study) The test job IFargEq0 is the wrapper of the executable “exitWithArg.exe” which exits the same value it has been defined as Attributes i.e. we expect that the workflow will execute the job FALSEBR (connected to the FALSE_OUTPUT port ) Input port definition to upload the executable “exitWithArg.exe” The first job of wrapper type must run unconditionally therefore gets a file containing “TRUE” as LOG_INPUT The job “TRUEBR” connected by the TRUE_OUTPUT port of the job “IFargEq0” will not execute its user program “multiply.exe” defined at the port:1 Port to define the user executable “multiply.exe” The job “FALSEBR” connected to the port FALSE_OUTPUT of IFargEq0 will run in our experiment executing the user program “CopyAndTime” defined at the port:1

Result of the case study

Job IFArgEq0 output listing Message of the embedded user program “ExitWithArg” As this program has no “real” data output the warning can be left out of consideration The wrapper reports its decision which determines the activation of subsequent jobs

Job TRUEBR output listing As the preceding wrapper job resulted the value “FALSE” on the TRUE_OUPUT port the user executable of this job will not be executed

Job FALSEBR output listing Message of the embedded user program “CopyAndTime” The wrapper reports its decision which determines the activation of subsequent jobs