- Python & Grid (19dec02 - Caltech) Python Scripting and Grid User Environments Craig E. Tull Trillium Analysis Environment for.

Slides:



Advertisements
Similar presentations
ATLAS/LHCb GANGA DEVELOPMENT Introduction Requirements Architecture and design Interfacing to the Grid Ganga prototyping A. Soroko (Oxford), K. Harrison.
Advertisements

A PPARC funded project AstroGrid Framework Consortium meeting, Dec 14-15, 2004 Edinburgh Tony Linde Programme Manager.
This product includes material developed by the Globus Project ( Introduction to Grid Services and GT3.
Office of Science U.S. Department of Energy DANSE Kickoff Meeting 2006 Introduction to Python Grid Tools Keith R. Jackson David E. Konerding Lawrence Berkeley.
Ideas on the LCG Application Architecture Application Architecture Blueprint RTAG 12 th June 2002 P. Mato / CERN.
Data Grids: Globus vs SRB. Maturity SRB  Older code base  Widely accepted across multiple communities  Core components are tightly integrated Globus.
Ganga: a User-Grid Interface for ATLAS and LHCb Motivation and background Objectives and design Low-level tools High-level tools and GUI Future plans and.
K. Harrison CERN, 15th May 2003 GANGA: GAUDI/ATHENA AND GRID ALLIANCE - Development strategy - Ganga prototype - Release plans - Conclusions.
SOA, BPM, BPEL, jBPM.
1 TclGlobus ITR2003 Meeting Argonne National Laboratory May 10 th, 2004 Kent Blackburn LIGO-G E.
Using ROOT classes from Python ROOT Workshop October 2002 P. Mato / CERN.
Data Management Kelly Clynes Caitlin Minteer. Agenda Globus Toolkit Basic Data Management Systems Overview of Data Management Data Movement Grid FTP Reliable.
Java Analysis Studio Status Update 12 May 2000 Altas Software Week Tony Johnson
NeSC Grid Apps Workshop Exposing Legacy Applications as OGSI Components using pyGlobus Keith R. Jackson Distributed Systems Department Lawrence Berkeley.
5 November 2001F Harris GridPP Edinburgh 1 WP8 status for validating Testbed1 and middleware F Harris(LHCb/Oxford)
K.Harrison CERN, 21st November 2002 GANGA: GAUDI/ATHENA AND GRID ALLIANCE - Background and scope - Project organisation - Technology survey - Design -
3 Sept 2001F HARRIS CHEP, Beijing 1 Moving the LHCb Monte Carlo production system to the GRID D.Galli,U.Marconi,V.Vagnoni INFN Bologna N Brook Bristol.
CoG Kit Overview Gregor von Laszewski Keith Jackson.
David Adams ATLAS ATLAS Distributed Analysis David Adams BNL March 18, 2004 ATLAS Software Workshop Grid session.
GT Components. Globus Toolkit A “toolkit” of services and packages for creating the basic grid computing infrastructure Higher level tools added to this.
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
K. Harrison CERN, 20th April 2004 AJDL interface and LCG submission - Overview of AJDL - Using AJDL from Python - LCG submission.
LC Software Workshop, May 2009, CERN P. Mato /CERN.
K.Harrison CERN, 6th March 2003 GANGA: GAUDI/ATHENA AND GRID ALLIANCE - Aims and design - Progress with low-level software - Progress with Graphical User.
Through the development of advanced middleware, Grid computing has evolved to a mature technology in which scientists and researchers can leverage to gain.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Nick Brook Current status Future Collaboration Plans Future UK plans.
ILDG Middleware Status Chip Watson ILDG-6 Workshop May 12, 2005.
Grid Computing Research Lab SUNY Binghamton 1 XCAT-C++: A High Performance Distributed CCA Framework Madhu Govindaraju.
K. Harrison CERN, 25th September 2003 GANGA: GAUDI/ATHENA AND GRID ALLIANCE - Project news - Ganga release 1 - Work towards Ganga release 2 - Interaction.
K.Harrison BNL, 7 May 2002 Overview of GANGA – First steps towards GANGA – Outline of required functionality – Some existing technology – Conclusions.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Tool Integration with Data and Computation Grid GWE - “Grid Wizard Enterprise”
David Adams ATLAS Architecture for ATLAS Distributed Analysis David Adams BNL March 25, 2004 ATLAS Distributed Analysis Meeting.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
Grid Services I - Concepts
SEAL Core Libraries and Services CLHEP Workshop 28 January 2003 P. Mato / CERN Shared Environment for Applications at LHC.
David Adams ATLAS DIAL/ADA JDL and catalogs David Adams BNL December 4, 2003 ATLAS software workshop Production session CERN.
SEAL Project Core Libraries and Services 18 December 2002 P. Mato / CERN Shared Environment for Applications at LHC.
ATLAS is a general-purpose particle physics experiment which will study topics including the origin of mass, the processes that allowed an excess of matter.
GDB Meeting - 10 June 2003 ATLAS Offline Software David R. Quarrie Lawrence Berkeley National Laboratory
INFSO-RI Enabling Grids for E-sciencE Ganga 4 – The Ganga Evolution Andrew Maier.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
INFSO-RI Enabling Grids for E-sciencE ARDA Experiment Dashboard Ricardo Rocha (ARDA – CERN) on behalf of the Dashboard Team.
Interactive Data Analysis on the “Grid” Tech-X/SLAC/PPDG:CS-11 Balamurali Ananthan David Alexander
K. Harrison CERN, 3rd March 2004 GANGA CONTRIBUTIONS TO ADA RELEASE IN MAY - Outline of Ganga project - Python support for AJDL - LCG analysis service.
Overview of Grid Webservices in Distributed Scientific Applications Dennis Gannon Aleksander Slominski Indiana University Extreme! Lab.
Tool Integration with Data and Computation Grid “Grid Wizard 2”
K. Harrison CERN, 22nd September 2004 GANGA: ADA USER INTERFACE - Ganga release status - Job-Options Editor - Python support for AJDL - Job Builder - Python.
- LCG Blueprint (19dec02 - Caltech Pasadena, CA) LCG BluePrint: PI and SEAL Craig E. Tull Trillium Analysis Environment for the.
ATLAS-specific functionality in Ganga - Requirements for distributed analysis - ATLAS considerations - DIAL submission from Ganga - Graphical interfaces.
- GMA Athena (24mar03 - CHEP La Jolla, CA) GMA Instrumentation of the Athena Framework using NetLogger Dan Gunter, Wim Lavrijsen,
INFSO-RI Enabling Grids for E-sciencE Using of GANGA interface for Athena applications A. Zalite / PNPI.
EGI Technical Forum Amsterdam, 16 September 2010 Sylvain Reynaud.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
K. Harrison CERN, 21st February 2005 GANGA: ADA USER INTERFACE - Ganga release Python client for ADA - ADA job builder - Ganga release Conclusions.
David Adams ATLAS ATLAS Distributed Analysis (ADA) David Adams BNL December 5, 2003 ATLAS software workshop CERN.
Interfacing Gaudi to the Grid (GANGA) Introduction Requirements Architecture and design Interfacing to the Grid Ganga prototyping A. Soroko (Oxford), K.
David Adams ATLAS ATLAS Distributed Analysis and proposal for ATLAS-LHCb system David Adams BNL March 22, 2004 ATLAS-LHCb-GANGA Meeting.
David Adams ATLAS ADA: ATLAS Distributed Analysis David Adams BNL December 15, 2003 PPDG Collaboration Meeting LBL.
ATLAS Physics Analysis Framework James R. Catmore Lancaster University.
A System for Monitoring and Management of Computational Grids Warren Smith Computer Sciences Corporation NASA Ames Research Center.
Seven things you should know about Ganga K. Harrison (University of Cambridge) Distributed Analysis Tutorial ATLAS Software & Computing Workshop, CERN,
Moving the LHCb Monte Carlo production system to the GRID
GWE Core Grid Wizard Enterprise (
The Ganga User Interface for Physics Analysis on Distributed Resources
Module 01 ETICS Overview ETICS Online Tutorials
Simulation and Physics
SEAL Project Core Libraries and Services
Presentation transcript:

- Python & Grid (19dec02 - Caltech) Python Scripting and Grid User Environments Craig E. Tull Trillium Analysis Environment for the Grid December 19, 2003 Caltech - Pasadena, CA

- Python & Grid (19dec02 - Caltech) Scripting Language Features typeless/not strongly typed —simplify connections —simpler syntax —easier/faster to learn (enough) error checking at the last possible moment —user interactivity interpreted —immediate feedback (eg. data exploration) many instructions per line (higher level) —complex tasks in few lines of code programmers write same # of LOC per year —many details are handled automatically

- Python & Grid (19dec02 - Caltech) Why Python? Easy to learn/read high-level scripting language —Very little syntax A large collection of modules to support common operations, e.g., networking, http, smtp, ldap, XML, Web Services, etc. Excellent for “gluing” together existing codes —Many automated tools for interfacing with C/C++/Fortran Support for platform independent GUI components Runs on all popular OS’s, e.g., UNIX, Win32, MacOS, etc. Support for Grid programming with pyGlobus, PyNWS, etc.

- Python & Grid (19dec02 - Caltech) pyGMA LBNL - Data Intensive Distributed Computing Research Group (DIDC) - Dan Gunter an implementation of the Grid Monitoring Architecture (GMA) Producer, Consumer, and Directory Service Web-Services SOAP interfaces in Python uses the ZSI SOAP library to aid with serialization and deserialization of messages a framework that handles the SOAP communications between the monitoring components defined by the GGF the target "user" of pyGMA is a developer that wants to connect existing or newly created monitoring components into a GMA-compatible framework

- Python & Grid (19dec02 - Caltech) PEG - Python Extensions for the Grid UCSD GRAIL (Grid Research and Innovation Lab) PyNWS —interface to the Network Weather Service (NWS) API library. routines for accessing the resource monitoring and forecasting services provided by NWS nameserver, memory, sensor, and forecaster processes. —contains an extension module (nws) which provides functions that closely correspond to the defined NWS API for C/C++, as well as a Python module (nws_class) that provides higher-level support for performing some common NWS activities

- Python & Grid (19dec02 - Caltech) Athena/Gaudi & Python Python version of Athena/ Gaudi JobOptions.txt has existed for some time. The Athena Startup Kit (ASK) Integrate Athena, Atlas releases, and CMT for an improved end- user experience Built on top of existing tools, not a replacement, it automates tasks otherwise left to the user Both GUI (simple) and CLI (powerful) Contains workarounds for broken releases (ugly!) In addition: make Athena more interactive => GaudiPython / GANGA

- Python & Grid (19dec02 - Caltech) pyRoot Motivation Pere Mato - ROOT 2002 Workshop Be able to use any ROOT class from Python in a generic way. —Without the need of wrapping each class —Using the ROOT object dictionary information Facilitate access of ROOT files and other facilities from non-ROOT applications Proof-of-concept that Python can be viewed as Software Bus —In analogy to a “hardware bus” where you can plug a variety of modules and interface adaptors to other buses.

- Python & Grid (19dec02 - Caltech) pyRoot Design TClassTClassWrap TMethodWrap TObjectWrap TCArrayWrap TObject TMethod RootModule CINT Boost.Python Other ROOT Libraries TROOTWrap Python interpreter

- Python & Grid (19dec02 - Caltech) C:\> python... >>> from rootmodule import * >>> f1 = TF1('func1','sin(x)/x',0,10) >>> f1.Eval(3) >>> f1.Derivative(3) >>> f1.Integral(0,3) >>> f1.Draw() : created default TCanvas with name c1 Example - Trivial Root No much difference between CINT and Python !

- Python & Grid (19dec02 - Caltech) Example - ROOT + Excel Filling an Excel spreadsheet from a ROOT ntuple # Get the ntuple from the ROOT file import rootmodule hfile = rootmodule.TFile('hsimple.root') ntuple = rootmodule.gROOT.FindObject('ntuple') entries = ntuple.GetEntries() nvar = ntuple.GetNvar() tuple = ntuple.GetArgs() # Initialize Excel import win32com.client excel = win32com.client.Dispatch('Excel.Application') wbook = excel.Workbooks.Add() wsheet = wbook.WorkSheets.Add() wsheet.Name = ntuple.GetTitle() # Fill Excel sheet for i in xrange(500) : ntuple.GetEntry(i) for j in range(nvar) : wsheet.Cells(i+1,j+1).value = tuple[j] # Make Excel sheet visible excel.Visible = 1

- Python & Grid (19dec02 - Caltech) pyGlobus Overview The Python CoG Kit provides a mapping between Python and the Globus Toolkit™. It extends the use of Globus by enabling access to advanced Python features such as events and objects for Grid programming. Hides much of the complexity of Grid programming behind simple object-oriented interfaces. The Python CoG Kit is implemented as a series of Python extension modules that wrap the Globus C code. Provides a complete interface to GT2.0. Uses SWIG ( to help generate the interfaces.

- Python & Grid (19dec02 - Caltech) Scripting/Adaptation Layers Native Lang Component Shadow Class Presentation Usability Task-based Application Component written in native program- ming language (C, C++, etc). eg. globus_ftp_client, gram_client, … 1 to 1 mapping (eg. via SWIG) map onto Python concepts/constructs apply the 80/20 rule for defaults to narrow interface aggregate components for a common task combine tasks in an application Python Adaptation laying for pyGlobus shows excellent decomposition.

- Python & Grid (19dec02 - Caltech) OGSI Plans for pyGlobus Develop a full OGSI implementation in Python —Planned alpha release of an OGSI client by the end of August —OGSI hosting environment based on WebWare ( Dynamic web service invocation framework —Similar to WSIF (Web Services Invocation Framework) from IBM for Java —Download and parse WSDL document, create request on the fly —Support for multiple protocol bindings to WSDL portTypes

- Python & Grid (19dec02 - Caltech) PyGlobus Status and Plans Users: —AccessGrid - Being rewritten using pyGlobus. —LIGO - Laser Interferometer Gravitational Wave Observatory —CAS - Community Authorization Service —NCAR - National Center for Atmospheric Research Current Work - Keith Jackson —~5-6 developers actively involved —GT3/OGSI port underway —pyGlobus will be part of GT3 distribution —Looking for feedback on "Usability" and "Task" layers and on Framework.

- Python & Grid (19dec02 - Caltech) GANGA Motivation ATLAS and LHCb develop applications within a common framework: Gaudi/Athena Both collaborations aim to exploit potential of Grid for large-scale, data- intensive distributed computing ATLAS and LHCb develop applications within a common framework: Gaudi/Athena Both collaborations aim to exploit potential of Grid for large-scale, data- intensive distributed computing Simplify management of analysis and production jobs for end-user physicists by developing tool for accessing Grid services with built-in knowledge of how Gaudi/Athena works: Gaudi/Athena and Grid Alliance (GANGA) Simplify management of analysis and production jobs for end-user physicists by developing tool for accessing Grid services with built-in knowledge of how Gaudi/Athena works: Gaudi/Athena and Grid Alliance (GANGA)

- Python & Grid (19dec02 - Caltech) Athena/GAUDI Architecture Converter Algorithm Event Data Service Persistency Service Data Files Algorithm Transient Event Store Detec. Data Service Persistency Service Data Files Transient Detector Store Message Service JobOptions Service Particle Prop. Service Other Services Histogram Service Persistency Service Data Files Transient Histogram Store Application Manager Converter

- Python & Grid (19dec02 - Caltech) Interfacing to the GRID GANGA: Gaudi/Athena and Grid Alliance —First ideas for GANGA were presented by P.Mato and C.Tull in summer 2001 —Joint ATLAS/LHCb GridPP proposal —2 funded FTEs Karl Harrison Alexander Soroko —May Cosners' House GridPP Meeting —Technology Survey Grappa, Genius, AliEn, Slice —Atlas/LHCb design team, including US representatives GAUDI / Athena GANGA GUI JobOptions Algorithms GRID Services Histograms Monitoring Results Interfacing GAUDI with GRID - P.Mato API

- Python & Grid (19dec02 - Caltech) Rule #1: Protect the User —Real Data vs. Virtual Data —LFN vs. PFN/TFN/SFN —Grid Enabled vs. Standalone —LSF/PBS/Condor We do not want the user of the Framework to know or care about details like this. —Implies: Uniform, abstract access to/specification of data sets (ie. if Real and Virtual Data are to be used). —Non-Grid implementations of Grid-enabled Services? —Grid & Non-grid concepts must merge at UI.

- Python & Grid (19dec02 - Caltech) Interfacing to the Grid Job class GANGA Core module Job Handler class XML RPC Data management service Job submission Job monitoring Security service dg-job-list-match dg-job-submit dg-job-cancel dg-job-list-match dg-job-submit dg-job-cancel grid-proxy-init MyProxy ? GSI ? grid-proxy-init MyProxy ? GSI ? dg-job-status dg-job-get-logging-info GRM/PROVE dg-job-status dg-job-get-logging-info GRM/PROVE edg-replica-manager dg-job-get-output globus-url-copy GDMP? edg-replica-manager dg-job-get-output globus-url-copy GDMP? EDG UI

- Python & Grid (19dec02 - Caltech) Ganga Prototyping Embedded Python interpreter Tree of user jobs Job options for selected job

- Python & Grid (19dec02 - Caltech) Ganga Prototyping (current state) GUI is created using wxPython extension module Access to the Gaudi Job Configuration DB is implemented with the xmlrpclib module User can browse and create Job Options files using this DB Serialization of objects (user jobs) is implemented with the Python pickle module Python interpreter is embedded into the GUI and allows user to configure interface from the command line GRID stuff is under development at the moment and is oriented on EDG testbed 1.2

- Python & Grid (19dec02 - Caltech) Conclusion Python Common themes —Naitive Lang for main functionality/peformance —Scripting as Glue (ala Stallman) —Fast Prototyping —Easily layered GUI wxWindows, tkinter —Adaptation Layering —Ease of adapting "Legacy" code Python is proving its promise as a fast, effective, object-oriented scripting language.

- Python & Grid (19dec02 - Caltech) Conclusion Other languages (Perl, Ruby, etc) and approaches (Grid Portals) exist can can/do work. But Python 1st choice for many in our field: —Middleware: pyGlobus, pyGMA, pyNWS —Physics: Athena/Gaudi, LCG, GANGA, LIGO Layering is crucial for coherent application Wrapping, gluing, and building from components a natural use of Python and a real boon in code reuse.

- Python & Grid (19dec02 - Caltech) Scripting/Adaptation Layers Native Lang Component Shadow Class Presentation Usability Task-based Application Component written in native program- ming language (C, C++, etc). eg. globus_ftp_client, gram_client, … 1 to 1 mapping (eg. via SWIG) map onto Python concepts/constructs apply the 80/20 rule for defaults to narrow interface aggregate components for a common task combine tasks in an application Python Adaptation laying for pyGlobus shows excellent decomposition.