Developing a ROOT Interface for gLite Anar Manafov, Kilian Schwarz (GSI, Germany)

1
Developing a ROOT Interface for gLite Developing a ROOT Interface for gLite Anar Manafov, Kilian Schwarz (GSI, Germany) Anar Manafov, Kilian Schwarz (GSI, Germany) Since September 2005, five Community projects and the D-Grid Integration project (DGI) started within the D-Grid Consortium to build a Since September 2005, five Community projects and the D-Grid Integration project (DGI) started within the D-Grid Consortium to build a sustainable Grid infrastructure in Germany. This will help to establish methods of e-science in the German scientific community. sustainable Grid infrastructure in Germany. This will help to establish methods of e-science in the German scientific community. To achieve our aim we need to To achieve our aim we need to get access to a gLite testbed or install it get access to a gLite testbed or install it ourselves; ourselves; investigate available gLite API and tools; investigate available gLite API and tools; implement TGridXXXX ROOT interfaces for gLite; implement TGridXXXX ROOT interfaces for gLite; try to reproduce “ALICE-like” analysis using our try to reproduce “ALICE-like” analysis using our new basis; new basis; learn and understand the tools; learn and understand the tools; investigate possible gaps in TGrid and in gLite. investigate possible gaps in TGrid and in gLite. Comments on the project timeline Comments on the project timeline Significant time of the project was spent on Significant time of the project was spent on installation and configuration of gLite (R1.4 and installation and configuration of gLite (R1.4 and R1.5) testbed. R1.5) testbed. gLite API has very good documentation and tests, gLite API has very good documentation and tests, which are very handy for our development. which are very handy for our development. It is very helpful for our project to have It is very helpful for our project to have TAlienXXXX implementation. It is the very first TAlienXXXX implementation. It is the very first implementation of TGridXXXX interfaces. implementation of TGridXXXX interfaces. A first alpha release of TGliteXXXX A first alpha release of TGliteXXXX implementation is expected in the end of February implementation is expected in the end of February 2006. 2006. Grid Access using ROOT facility Grid Access using ROOT facility UI to Grid UI to Grid Service + Files Service + Files Abstract Abstract Base Classes Base Classes Grid Plug-in Grid Plug-in Classes Classes TGrid TAlien TGrid::Connect(“alien://...) Alien API Service TGrid TGLite TGrid::Connect(“glite://...) gLite C++ API TGrid TGlobus4 TGrid::Connect(“globus4...) Globus4 API Could be implement in the future? TGrid Abstract base class defining interface to common Grid services. TGridResult Abstract base class defining interface to a Grid result. Objects of this class are created by TGrid methods. TGridJob Pure Abstract class. Abstract base class defining interface to a Grid job. TGridJDL Pure Abstract class. To generate JDL files for job submission to the Grid. TGridJobStatus Pure Abstract class. Abstract base class containing the status of a Grid job. TGridCollection Class which manages collection files on the Grid. Set of ROOT Interfaces to the Grid Set of ROOT Interfaces to the Grid TAlienXXXX TAlienXXXX TGLiteXXXX TGLiteXXXX realized” realized” TAlien TAlien – Based on AliEn middleware; initially developed and used by the ALICE – Based on AliEn middleware; initially developed and used by the ALICE collaboration. collaboration. TGlite TGlite – Based on gLite middleware. In terms of the EGEE project it can be used by HEP – Based on gLite middleware. In terms of the EGEE project it can be used by HEP (4 LHC experiments) + Biomedical + other VOs. (4 LHC experiments) + Biomedical + other VOs. www.gsi.de www.bmbf.de public.eu-egee.org root.cern.ch aliceinfo.cern.ch www.d-grid.de gLite WMProxy C++ API gLite WMProxy C++ API Parametric Jobs Parametric Jobs Bulk submission/Job Collections Bulk submission/Job Collections Shared sandbox Shared sandbox Shared requirements Shared requirements non-local” Input Sandboxes non-local” Input Sandboxes Automatic upload of Output Automatic upload of Output Sandboxes Sandboxes FQAN based authZ/mapping FQAN based authZ/mapping JDL extensions JDL extensions Partitioning on data Partitioning on data ROOT Facility ROOT Facility TGLiteXXXX TGLiteXXXX gLite User Interface gLite User Interface gLite API gLite API gLite WMS & LB gLite WMS & LB TGLiteXXXX Schema TGLiteXXXX Schema WMProxy C++ API WMProxy C++ API RGMA C++ API RGMA C++ API As a WM API we find the gLite WMProxy C++ API best choice, because As a WM API we find the gLite WMProxy C++ API best choice, because it has several advantages in comparing to the old WM UI API it has several advantages in comparing to the old WM UI API User Interface User Interface ALICE users access any ALICE users access any Grid Infrastructure via Grid Infrastructure via AliEn or ROOT/PROOF UI. AliEn or ROOT/PROOF UI. ALICE Analysis Basic Concepts ALICE Analysis Basic Concepts AliEn AliEn Native and “Grid on a Grid” (LCG/EGEE, Native and “Grid on a Grid” (LCG/EGEE, ARC, OSG); ARC, OSG); integrate as much as possible common integrate as much as possible common components components LFC, FTS, WMS, MonALISA ... LFC, FTS, WMS, MonALISA ... Analysis Models Analysis Models Prompt analysis at T0 using PROOF Prompt analysis at T0 using PROOF (+file catalogue) infrastructure; (+file catalogue) infrastructure; batch Analysis using Grid batch Analysis using Grid infrastructure; infrastructure; interactive Analysis using PROOF interactive Analysis using PROOF (+Grid) infrastructure. (+Grid) infrastructure. PROOF/ROOT PROOF/ROOT Single-/Multi- tier static and dynamic Single-/Multi- tier static and dynamic PROOF cluster; PROOF cluster; Grid API class TGrid (virtual) ---> Grid API class TGrid (virtual) ---> TAliEn (implementation). TAliEn (implementation). PROOF Session Diagram PROOF Session Diagram Client Grid query Client Client Master Master Grid Grid Grid UI PROOF steering reserves PROOF slaves with Grid query dataset PROOF steering populates Grid or batch queue with new slaves or discovers static slaves Client sends analysis request to PROOF Steering Client Grid query Phase I: Phase I: Grid MW Grid MW dependent dependent Private PROOF master sends session timeout to client Private PROOF master connects to remote slaves via 'localhost' proxies Client terminates Client runs analysis on Grid query dataset Client connects to private PROOF master Remote Slaves Phase II: Phase II: Grid MW Grid MW independent independent *) Based on presentation of Fons Rademakers, “PROOF with AliEn and GLite”, GridKA School 2004. Most of the PROOF components are Most of the PROOF components are MW independent. MW independent. To use PROOF on Grid we have to To use PROOF on Grid we have to take care of the part which is MW take care of the part which is MW dependent. dependent. For a user MW dependent For a user MW dependent components are hidden behind components are hidden behind TGridXXXX interfaces. TGridXXXX interfaces. Our goal is to implement Our goal is to implement TGridXXXX for gLite and for other TGridXXXX for gLite and for other MW. MW. Combined with Grid middleware Combined with Grid middleware PROOF becomes a powerful PROOF becomes a powerful environment for “interactive” environment for “interactive” parallel analysis of globally parallel analysis of globally distributed data. distributed data. The main aim The main aim of this study is to investigate whether we can use “ALICE–like” of this study is to investigate whether we can use “ALICE–like” interactive analysis in the Grid environment without requiring AliEn everywhere. As interactive analysis in the Grid environment without requiring AliEn everywhere. As a good basis we took gLite middleware, since it is going to be general middleware a good basis we took gLite middleware, since it is going to be general middleware for LHC experiments in near future (in terms of EGEE project). In the same time we for LHC experiments in near future (in terms of EGEE project). In the same time we try to proof that the same can be done with other types of Grid middleware like try to proof that the same can be done with other types of Grid middleware like Globus4, for instance. Globus4, for instance. Contact: [email protected] (Anar Manafov) TGrid example with AliEn/gLite TGrid example with AliEn/gLite // Connect TGrid grid = TGrid::Connect(“alien://”); // Connect(“glite…” // Query TGridResult *res = grid.Query(“/home/test_user/analysis/”, ”*.root“); // List of files TList *listf = res->GetFileInfoList(); // Create chain TChain chain(“Events", “session"); Chain.AddFileInfoList(listf); // Start PROOF TProof proof(“remote”); // Process your query Chain.Process(“selector.C”); 2005-11-01 2006-05-01 Project tim eline snapshot 2006-01-01 -2006-02-05 gLite testbed 2005-11-19 -2006-01-01 Investigating gLite API 2005-11-01 -2005-11-17 gLite testbed 2005-11-07 RG Lite Kick-offm eeting 2006-01-23 Tests ofgLite APIR 1.5 2005-11-01 -2006-02-02 gLite testbed installation and configuration (gLite R 1.4 and R 1.5) 2006-02-06 -2006-03-26 D eveloping TG LiteXXXX 2006-02-27 The Firstprototype ofTG LiteXXXX 2006-03-25 -2006-04-17 Investigate gaps

description

Developing a ROOT Interface for gLite Anar Manafov, Kilian Schwarz (GSI, Germany). PROOF Session Diagram. Client. Master. Grid. Client Grid query. Grid UI. PROOF steering populates Grid or batch queue with new slaves or discovers static slaves. Phase I: Grid MW dependent. - PowerPoint PPT Presentation

Transcript of Developing a ROOT Interface for gLite Anar Manafov, Kilian Schwarz (GSI, Germany)

Page 1: Developing a ROOT Interface for gLite Anar Manafov, Kilian Schwarz (GSI, Germany)

Developing a ROOT Interface for gLiteDeveloping a ROOT Interface for gLiteAnar Manafov, Kilian Schwarz (GSI, Germany)Anar Manafov, Kilian Schwarz (GSI, Germany)

Since September 2005, five Community projects and the D-Grid Integration project (DGI) started within the D-Grid Consortium to build a sustainable Grid Since September 2005, five Community projects and the D-Grid Integration project (DGI) started within the D-Grid Consortium to build a sustainable Grid infrastructure in Germany. This will help to establish methods of e-science in the German scientific community. infrastructure in Germany. This will help to establish methods of e-science in the German scientific community.

To achieve our aim we need toTo achieve our aim we need to• get access to a gLite testbed or install it ourselves;get access to a gLite testbed or install it ourselves;• investigate available gLite API and tools;investigate available gLite API and tools;• implement TGridXXXX ROOT interfaces for gLite;implement TGridXXXX ROOT interfaces for gLite;• try to reproduce “ALICE-like” analysis using our new basis;try to reproduce “ALICE-like” analysis using our new basis;• learn and understand the tools;learn and understand the tools;• investigate possible gaps in TGrid and in gLite.investigate possible gaps in TGrid and in gLite.

Comments on the project timelineComments on the project timeline• Significant time of the project was spent on installation and Significant time of the project was spent on installation and configuration of gLite (R1.4 and R1.5) testbed.configuration of gLite (R1.4 and R1.5) testbed.• gLite API has very good documentation and tests, which gLite API has very good documentation and tests, which are very handy for our development.are very handy for our development.• It is very helpful for our project to have TAlienXXXX It is very helpful for our project to have TAlienXXXX implementation. It is the very first implementation of implementation. It is the very first implementation of TGridXXXX interfaces.TGridXXXX interfaces.• A first alpha release of TGliteXXXX implementation is A first alpha release of TGliteXXXX implementation is expected in the end of February 2006.expected in the end of February 2006.

Grid Access using ROOT facilityGrid Access using ROOT facility

UI to GridUI to GridService + FilesService + Files

Abstract Base Abstract Base ClassesClasses

Grid Plug-in Grid Plug-in ClassesClasses

TGrid TAlienTGrid::Connect(“alien://...)Alien API Service

TGrid TGLiteTGrid::Connect(“glite://...) gLite C++ API

TGrid TGlobus4TGrid::Connect(“globus4...) Globus4 API

Could be implement in the

future?

TGridAbstract base class defining interface to common Grid services.

TGridResultAbstract base class defining interface to a Grid result. Objects of this class are created by TGrid methods.

TGridJobPure Abstract class. Abstract base class defining interface to a Grid job.

TGridJDLPure Abstract class. To generate JDL files for job submission to the Grid.

TGridJobStatusPure Abstract class. Abstract base class containing the status of a Grid job.

TGridCollectionClass which manages collection files on the Grid.

Set of ROOT Interfaces to the GridSet of ROOT Interfaces to the Grid

TAlienXXXXTAlienXXXX TGLiteXXXXTGLiteXXXX

“ “realized”realized”• TAlienTAlien – Based on AliEn middleware; initially developed and used by the ALICE collaboration. – Based on AliEn middleware; initially developed and used by the ALICE collaboration.• TGliteTGlite – Based on gLite middleware. In terms of the EGEE project it can be used by HEP (4 LHC – Based on gLite middleware. In terms of the EGEE project it can be used by HEP (4 LHC experiments) + Biomedical + other VOs.experiments) + Biomedical + other VOs.

www.gsi.de www.bmbf.de public.eu-egee.orgroot.cern.chaliceinfo.cern.chwww.d-grid.de

gLite WMProxy C++ APIgLite WMProxy C++ API• Parametric JobsParametric Jobs• Bulk submission/Job CollectionsBulk submission/Job Collections• Shared sandboxShared sandbox• Shared requirements Shared requirements • “ “non-local” Input Sandboxes non-local” Input Sandboxes • Automatic upload of Output Sandboxes Automatic upload of Output Sandboxes • FQAN based authZ/mapping FQAN based authZ/mapping • JDL extensions JDL extensions • Partitioning on dataPartitioning on data

ROOT FacilityROOT Facility

TGLiteXXXXTGLiteXXXX

gLite User InterfacegLite User Interface

gLite APIgLite APIgLite WMS & LBgLite WMS & LB

TGLiteXXXX Schema TGLiteXXXX Schema

WMProxy C++ APIWMProxy C++ API RGMA C++ APIRGMA C++ API

As a WM API we find the gLite WMProxy C++ API best choice, because it has As a WM API we find the gLite WMProxy C++ API best choice, because it has several advantages in comparing to the old WM UI APIseveral advantages in comparing to the old WM UI API

User InterfaceUser Interface• ALICE users access any Grid ALICE users access any Grid Infrastructure via AliEn or Infrastructure via AliEn or ROOT/PROOF UI.ROOT/PROOF UI.

ALICE Analysis Basic ConceptsALICE Analysis Basic ConceptsAliEnAliEn

• Native and “Grid on a Grid” (LCG/EGEE, ARC, Native and “Grid on a Grid” (LCG/EGEE, ARC, OSG);OSG);• integrate as much as possible common integrate as much as possible common componentscomponents

• LFC, FTS, WMS, MonALISA ...LFC, FTS, WMS, MonALISA ...

Analysis ModelsAnalysis Models• Prompt analysis at T0 using PROOF (+file Prompt analysis at T0 using PROOF (+file catalogue) infrastructure;catalogue) infrastructure;• batch Analysis using Grid infrastructure;batch Analysis using Grid infrastructure;• interactive Analysis using PROOF (+Grid) interactive Analysis using PROOF (+Grid) infrastructure.infrastructure.

PROOF/ROOTPROOF/ROOT• Single-/Multi- tier static and dynamic PROOF Single-/Multi- tier static and dynamic PROOF cluster;cluster;• Grid API class TGrid (virtual) ---> TAliEn Grid API class TGrid (virtual) ---> TAliEn (implementation).(implementation).

PROOF Session DiagramPROOF Session Diagram

Client Grid query

ClientClient MasterMaster GridGrid

Grid UI

PROOF steering reserves PROOF slaves with Grid query dataset

PROOF steering populates Grid or batch queue with new slaves or discovers static slavesClient sends

analysis request to PROOF Steering

Client Grid queryPhase I:Phase I:Grid MWGrid MWdependentdependent

Private PROOF master sends session timeout to client

Private PROOF master connects to remote slaves via 'localhost' proxies

Client terminates

Client runs analysis on Grid query dataset

Client connects to private PROOF master

Remote Slaves

Phase II:Phase II:Grid MWGrid MWindependentindependent

*) Based on presentation of Fons Rademakers, “PROOF with AliEn and GLite”, GridKA School 2004.

• Most of the PROOF components are MW Most of the PROOF components are MW independent.independent.

• To use PROOF on Grid we have to take To use PROOF on Grid we have to take care of the part which is MW dependent.care of the part which is MW dependent.

• For a user MW dependent components For a user MW dependent components are hidden behind TGridXXXX interfaces.are hidden behind TGridXXXX interfaces.

• Our goal is to implement TGridXXXX for Our goal is to implement TGridXXXX for gLite and for other MW.gLite and for other MW.

• Combined with Grid middleware PROOF Combined with Grid middleware PROOF becomes a powerful environment for becomes a powerful environment for “interactive” parallel analysis of globally “interactive” parallel analysis of globally distributed data.distributed data.

The main aimThe main aim of this study is to investigate whether we can use “ALICE–like” interactive analysis in of this study is to investigate whether we can use “ALICE–like” interactive analysis in the Grid environment without requiring AliEn everywhere. As a good basis we took gLite the Grid environment without requiring AliEn everywhere. As a good basis we took gLite middleware, since it is going to be general middleware for LHC experiments in near future (in terms middleware, since it is going to be general middleware for LHC experiments in near future (in terms of EGEE project). In the same time we try to proof that the same can be done with other types of of EGEE project). In the same time we try to proof that the same can be done with other types of Grid middleware like Globus4, for instance.Grid middleware like Globus4, for instance.

Contact: [email protected] (Anar Manafov)

TGrid example with AliEn/gLiteTGrid example with AliEn/gLite// ConnectTGrid grid = TGrid::Connect(“alien://”); // Connect(“glite…”

// QueryTGridResult *res = grid.Query(“/home/test_user/analysis/”, ”*.root“);// List of filesTList *listf = res->GetFileInfoList();// Create chainTChain chain(“Events", “session");Chain.AddFileInfoList(listf);// Start PROOFTProof proof(“remote”);// Process your queryChain.Process(“selector.C”);

2005-11-01 2006-05-01

Project timeline snapshot

2006-01-01 - 2006-02-05gLite testbed

2005-11-19 - 2006-01-01Investigating gLite API

2005-11-01 - 2005-11-17gLite testbed

2005-11-07RGLite Kick-off meeting

2006-01-23Tests of gLite API R1.5

2005-11-01 - 2006-02-02gLite testbed installation and configuration (gLite R1.4 and R1.5)

2006-02-06 - 2006-03-26Developing TGLiteXXXX

2006-02-27The First prototype

of TGLiteXXXX

2006-03-25 - 2006-04-17Investigate gaps