Modularization of Geant4 Dynamic loading of modules Configurable build using CMake Pere Mato Witek Pokorski 13.09.2012 1.

Slides:



Advertisements
Similar presentations
CERN LCG Overview & Scaling challenges David Smith For LCG Deployment Group CERN HEPiX 2003, Vancouver.
Advertisements

Linkage Editors Difference between a linkage editor and a linking loader: Linking loader performs all linking and relocation operations, including automatic.
UI 4.x Ready or not, here it comes.... What is UI4.x? A graphical user interface for Colleague, extending the functionality of UI Web. Added functionality.
Memory Management 2010.
1/28/2004CSCI 315 Operating Systems Design1 Operating System Structures & Processes Notice: The slides for this lecture have been largely based on those.
DT228/3 Web Development JSP: Directives and Scripting elements.
Page 1 Building Reliable Component-based Systems Chapter 18 - A Framework for Integrating Business Applications Chapter 18 A Framework for Integrating.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 2: Operating-System Structures Modified from the text book.
Software Installation The full set of lecture notes of this Geant4 Course is available at
Creational Patterns Making Objects The Smart Way Brent Ramerth Abstract Factory, Builder.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
SCRAM Software Configuration, Release And Management Background SCRAM has been developed to enable large, geographically dispersed and autonomous groups.
Programming Languages and Paradigms Object-Oriented Programming.
Framework for Automated Builds Natalia Ratnikova CHEP’03.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
Unit tests, Integration tests Physics tests Andrea Dotti, Gunter Folger, Pere Mato CERN – PH/SFT Geant4 workshop 2012.
1 I-Logix Professional Services Specialist Rhapsody IDF (Interrupt Driven Framework) CPU External Code RTOS OXF Framework Rhapsody Generated.
Computer Architecture and Operating Systems CS 3230: Operating System Section Lecture OS-7 Memory Management (1) Department of Computer Science and Software.
DTIAtlasBuilder Adrien Kaiser Neuro Image Research and Analysis Laboratories University of North Carolina at Chapel Hill A tool to create an atlas from.
Parsley Introduction Kui Huang Oct. 13, Topics Background Dependency Injection Object Lifecycle Message Bus Sample FW Extensions.
Creational Patterns CSE301 University of Sunderland Harry R Erwin, PhD.
Developments in networked embedded system technologies and programmable logic are making it possible to develop new, highly flexible data acquisition system.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
NA-MIC National Alliance for Medical Image Computing Slicer Building and Deployment Steve Pieper, PhD.
OCR GCSE Computing © Hodder Education 2013 Slide 1 OCR GCSE Computing Chapter 2: Memory.
Visual Linker ARD presentation. slide 2  Background and Vision  Problem Domain  Stakeholders  Functional Requirements  Non Functional.
W. Pokorski - CERN Simulation Project1 Python binding for Geant4 toolkit using Reflex/PyROOT tool Witek Pokorski EuroPython 2006, CERN, Geneva
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
National Instruments Leadership Seminar
EXTENSIBILITY, SAFETY AND PERFORMANCE IN THE SPIN OPERATING SYSTEM
SEAL Core Libraries and Services CLHEP Workshop 28 January 2003 P. Mato / CERN Shared Environment for Applications at LHC.
A proposal for a Proposal for a Simulation Framework in BTeV G. Cerati, E. Di Maio, S. Magni, D. Menasce.
CERN IT Department t LHCb Software Distribution Roberto Santinelli CERN IT/GS.
Open Solutions for a Changing World™ Copyright 2005, Data Access Worldwide June 6-9, 2005 Key Biscayne, Florida 1 Application Deployment Stephen W. Meeley.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
INFSO-RI Enabling Grids for E-sciencE ARDA Experiment Dashboard Ricardo Rocha (ARDA – CERN) on behalf of the Dashboard Team.
Transformation System report Luisa Arrabito 1, Federico Stagni 2 1) LUPM CNRS/IN2P3, France 2) CERN 5 th DIRAC User Workshop 27 th – 29 th May 2015, Ferrara.
K. Harrison CERN, 3rd March 2004 GANGA CONTRIBUTIONS TO ADA RELEASE IN MAY - Outline of Ganga project - Python support for AJDL - LCG analysis service.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
ETICS All Hands meeting B ologna, October , 2006 WP4 Test and Metrics Plugin Framework (WP4) (WP4) Eva TAKACS.
Geant4 is a toolkit to simulate the passage of particles through matter, and is widely used in HEP, in medical physics and for space applications. Ongoing.
Build Tools 1. Building a program for a large project is usually managed by a build tool that controls the various steps involved. These steps may include:
C++ / G4MICE Course Session 6 G4MICE Design and Domains Datacards Configurations (MiceModules) Using existing G4MICE Applications.
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
Monitoring Dynamic IOC Installations Using the alive Record Dohn Arms Beamline Controls & Data Acquisition Group Advanced Photon Source.
Analysis Model Zhengyun You University of California Irvine Mu2e Computing Review March 5-6, 2015 Mu2e-doc-5227.
Elements of LCG Architecture Application Architecture Blueprint RTAG 8 th June 2002 P. Mato / CERN.
INFSOM-RI Elisabetta Ronchieri INFN CNAF ETICS 2 nd EU Review (CERN) 15 February 2008 WP3 - Software Configuration Tools and Methodologies.
Main Memory CSSE 332 Operating Systems Rose-Hulman Institute of Technology.
GridOS: Operating System Services for Grid Architectures
CSE791 - Distributed Objects, Spring 2002
How to Contribute to System Testing and Extract Results
Essentials of UrbanCode Deploy v6.1 QQ147
CSE775 - Distributed Objects, Spring 2006
An Introduction to the IVC Software Framework
Status of CHIPS cross sections and migration of the physics lists
Geant4 Geometry Objects Persistency using ROOT
LCGAA nightlies infrastructure
Intent (Thanks to Jim Fawcett for the slides)
Page Replacement.
Present by Andie Saizan, MCP
Software Installation
Ms Munawar Khatoon IV Year I Sem Computer Science Engineering
SAP R/3 Installation on WIN NT-ORACLE
Multithreaded Programming
Simulation Framework Subproject cern
Discussing an OVS/OVN Split
In Today’s Class.. General Kernel Responsibilities Kernel Organization
Plug-In Architecture Pattern
Presentation transcript:

Modularization of Geant4 Dynamic loading of modules Configurable build using CMake Pere Mato Witek Pokorski

Motivation Geant4 has successfully brought together many experts from different physics domains (HEP, space, medical, etc) as well as related fields (geometry, visualisation, etc) to contribute to the toolkit number of models and complexity of the software has grown to the extend of being difficult to handle as one monolithic bloc  compile-time dependencies introduce bindings of the code needed in different (unrelated) domains  very little configuration possible at the build time only to switch off modules depending on external software  at run time, many not-needed modules (physics models, etc) are loaded into memory users (LHCb requested it already) and developers would gain a lot if Geant4 became a framework with dynamically loadable plugins 2

Examples physics lists (builders) introduce a compile and link time dependencies between all physics models in Geant4  no way to choose to compile only EmDNA physics, or only HEP physics  developers blocking each-other due to dependencies in SVN tags libraries (for ex. G4processes) loaded at run time always include all models  waste of time and memory (e.g. the 3 top models counts for 30% of G4processes and not used in standard HEP Physics Lists)  LHC experiments could gain ~1-2% in memory requirements 1-2 % of the overall memory requirements of 1-2 GB gives ~20MB*100k concurrent jobs = 2 TB of RAM = 20k $ never all the Geant4 functionality is needed at once G4visualisation not used in batch jobs, etc  G4analysis not used in experiments frameworks, etc 3

Proposal 1. remove all possible compile-time dependencies by using factory-based mechanism 2. introduce configuration capability in Geant4 CMake system to allow detailed selection of the required modules  should also be accompanied by an SVN tool allowing selective check out of the code 3. introduce a plugin-based, dynamic (on demand) loading capability in Geant4  only ‘core’ Geant4 should be linked with the application  all specific modules (models, tools) should be loaded dynamically 4

Ad 1. Factory based mechanism allows to instantiate objects without including the concrete header file in the client code  concrete classes register themselves in some central registry  avoids compile- and link-time dependency already done for cross section classes extracted from CHIPS  can be applied at any level in Geant4 (tools, modules, physics lists, models, processes, etc...) 5

Ad 2. with compilation dependencies removed (point 1) CMake provides an easy way of configuring (selecting) modules to be built  already used for GDML, for instance default CMake configuration can build everything but specific flags could switch off not needed modules a small script for checking out from SVN only the needed directories would help a lot 6

Ad 3. dynamically loadable plugins will allow users to ‘build’ their applications at run time, using the needed minimum of modules, with no need to recompile to add anything extra Geant4 ‘main’ would allow loading of the needed functionality at runtime  possibility to choses physics models or to change the models without the need to recompile  load necessary tools (visualisation, analysis, etc) the same ‘main’ would be used in all cases (development, validation, batch jobs) with just different option (configuration) files 7

Example building of Physics List G4PhysicsPluginManager->AddPhysics(“EmStandardPhysics”) G4PhysicsPluginManager->AddPhysics(“HadronPhysicsQGSP_BERT”) etc... 8 names of loadable plugins

Conclusion modularization (removing compile-time dependencies) and introducing dynamically loadable plugins would improve a lot the flexibility of the Geant4 toolkit  would allow the users to select the needed minimum of the modules and to change them dynamically  would speed up the development Geant4 major release is certainly a good moment to introduce such a framework 9

Backup Slides 10

G4processes contribution (%) 11