Title: Ganga: a User-Grid Interface for ATLAS and LHCb
1Ganga a User-Grid Interface for ATLAS and LHCb
K. Harrison, P. Mato, A. Soroko and C. Tull
- Motivation and background
- Objectives and design
- Low-level tools
- High-level tools and GUI
- Future plans and conclusions
2Motivation and background
- 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 tools
for accessing Grid services with built-in
knowledge of how Gaudi/Athena works Gaudi/Athena
and Grid Alliance (GANGA) - Generic tools interfacing to the Grid can be used
at other experiments.
3Motivation and background
- First ideas for GANGA were presented in summer
2001 (P.Mato and C.Tull) - An Atlas/LHCb design team was set up, including
US representatives
4Objectives and design
- The user interacts with a single application
integrating all stages of job life-time. - Modular design. Each module can be accessed via
Python interface or is entirely written in
Python. - Although Atlas and LHCb use the same framework
and the same software management tool, there are
significant differences in what is expected from
the software, and Ganga must have the flexibility
to cope. - Ganga provides a set of tools to manipulate jobs
and data. Tools are accessible from CLI (other
scripts) or from GUI. - Ganga allows access both to the local resources
(LSF batch system) and to the GRID. - Should follow, and contribute to, developments in
LCG.
5Required Functionality
- Job preparation and configuration
- Resource booking
- Job submission
- User can choose between Grid and local resource
management system - Job monitoring and control
- GUI for the resource browsing
- VO active services
- CEs
- SEs
- Query existing files in the Grid
- GUI for data management tools
- e.g., Dataset registration to the Grid (used by
Production Manager) - Copy file from a Computing Element to a Storage
Element - Replication of files
6Athena/Gaudi Architecture
7Ganga Python Bus Design
8Class Diagram of Ganga Core Module
9Ganga Job and Application Handlers
10Core Module Implementation
- Most of base classes are developed. Serialization
of objects (user jobs) is implemented with the
Python pickle module. - GaudiApplicationHandler can access Configuration
DB for some Gaudi applications (Brunel). It is
implemented with the xmlrpclib module. Ganga can
create user-customized Job Options files using
this DB. - DaVinci and AtlFast application handlers are in
the last stage of development. - LSFJobHandler is implemented. It allows to submit
and to get simple monitoring information for a
job at LSF batch system. - Much of GRID-related functionality is already
implemented in GridJobHandler using EDG testbed
1.4 software. Ganga can submit, monitor, and get
output from GRID jobs. - JobsRegistry class provides jobs monitoring via
multithreaded environment based on Python
threading module
11EDG Grid Interface
Job Handler class
Job class
JobsRegistry class
Data management service
Job submission
Job monitoring
Security service
dg-job-list-match dg-job-submit dg-job-cancel
grid-proxy-init MyProxy
dg-job-status dg-job-get-logging-info GRM/PROVE
edg-replica-manager dg-job-get-output globus-url-c
opy GDMP
EDG UI
12Ganga low-level tools
- In Ganga, components used to define a job are
mapped to Python classes. - The low-level software needs to provide
representations of the most basic components, and
must allow flexibility in manipulating them. - Users will have access to low-level data and
methods at the command line, but in most cases
shouldnt need them - Low-level software works, but is preliminary.
- Some details of component representations and
their interfaces are still being discussed by
development team, but most of them have already
been defined.
13Low-level tools Atlas example (AtlFast)
atlasSetup GangaCommand(source
/afs/cern.ch/user/h/harrison/public/atlasSetup.sh
) atlfast GangaCMTApplication(TestRelease,
TestRelease-00-00-15,athena.exe,
run/AtlasfastOptions.txt) atlfastO
utput GangaOutputFile(atlfast.ntup) workStep1
GangaWorkStep(atlasSetup,atlfast,atlfastOutput
) workFlow GangaWorkFlow(workStep1) lsfJob
GangaLSFJob(atlfastTest,workFlow) lsfJob.build()
lsfJob.run()
At this level, there is less built-in
intelligence than in ASK, but a lot of flexibility
14Low-level tools LHCb example (DaVinci)
lhcbSetup GangaCommand(source
/afs/cern.ch/lhcb/scripts/lhcbenv.sh) daVinciSet
up GangaCommand(source
/afs/cern.ch/lhcb/scripts/ProjectEnv.sh DaVinci
v7r2) daVinci GangaCMTApplication(Phys/DaVinc
i, v7r2,DaVinci.exe,
options/DaVinci.opts) daVinciOutput
GangaOutputFile(dvhistos.hbook) workStep1
GangaWorkStep(lhcbSetup,daVinciSetup,daVinci,
daVinciOutput) workFlow
GangaWorkFlow(workStep1) lsfJob
GangaLSFJob(daVinciTest,workFlow) lsfJob.build()
lsfJob.run()
Command sequences for Atlas and LHCb are very
similar
15Ganga high-level tools
- In Ganga, common tasks are realized via methods
of job and application handler classes
(JobHandler, ApplicationHandler and their
subclasses). - The low-level software needs to provide building
blocks for these methods. - High-level tools are available both at the
command line and through a GUI. - More advanced functionality will appear with the
progress of low-level tools development.
16Ganga GUI Implementation
- GUI is created using wxPython extension module.
- All job configuration data are represented as a
hierarchical structure accessible via tree
control. Most important job parameters are
brought to the top of the tree. - All job parameters defined by the user can be
edited via GUI dialogs. - All implemented tools are available via GUI, but
some of them require more elaborated interface,
e.g., Job Options browser/editor. - Python interpreter is embedded into the GUI and
allows user to configure interface from the
command line.
17GUI Snapshots
Embedded Python interpreter
18GUI Snapshots
Create a new job
19GUI Snapshots
Access Job (application) options downloaded from
DB
20GUI Snapshots
Define batch system
21GUI Snapshots
Define necessary resources
22GUI Snapshots
Submit the job (after configuration)
23GUI Snapshots
Job has been submitted successfully
24GUI Snapshots
Job monitoring has been started automatically
25GUI Snapshots
Standard output for the Hello World LSF job
26Future Plans and Conclusions
- One of the immediate plans is to complete
implementation of Grid data management tools
(interface to GDMP and replica-manager). - Advanced Job Options Editor should be developed
and integrated with Ganga. - We plan to add new job handlers, e.g., for PBS
and for local PC. - While we assume that basic LHCb software is
available at worker nodes, we cant require the
same for the user code. Therefore the possibility
to build user software remotely with Ganga should
be investigated. - Web-based variant of GUI (or thin remote client)
should be considered. Some questions remain
related to the security issues, but we can try
Globus PyCoG to overcome these problems. - We plan to investigate possibilities for
exploiting Grid Monitoring Architecture in Ganga. - Code for the Ganga package can be obtained from
Gaudi CVS repository. - More information about GANGA development can be
found in the web site http//ganga.web.cern.ch/gan
ga/