70 likes | 153 Views
GAUDI JobOptions. GANGA Workshop, 20-22 April 2004 P. Mato / CERN. JobOptionsSvc sets the initial values to Algorithm/Service/Tool properties Runtime interaction is possible using the IProperty interface associated to each Algorithm/Service/Tool. Job Options Service. IService. IProperty.
E N D
GAUDI JobOptions GANGA Workshop, 20-22 April 2004 P. Mato / CERN
JobOptionsSvc sets the initial values to Algorithm/Service/Tool properties Runtime interaction is possible using the IProperty interface associated to each Algorithm/Service/Tool Job Options Service IService IProperty Obj1.PropA = valA; Obj2.PropB = valB; … Obj3.PropC = {..}; JobOptions Service IJobOptionsSvc IProperty Algorithm PropertyMgr MyAlg GANGA Project
JobOption Categories • There are four kinds of “JobOptions” • To configure the “network” of services (experts) ApplicationMgr.ExtSvc EventPersistencySvc.CnvServices • To configure the “execution flow” (end-users) ApplicationMgr.TopAlg AlgSequencer.Members • To configure the “data flow” (end-users) EventSelector.Input • To configure properties of Services/Algorithms/Tools MyAlgorithm.EnergyCut GANGA Project
Dumping Complete Set of Properties • All properties defined in the System associated to each class (static analysis) • Looking at the DLLs we can not see the property “instances” • We need to look at a running application (dynamic analysis) … DLL1 DLL3 DLL3 Alg Svc Tool Alg Svc Tool Alg Svc Tool Alg Svc Tool Alg Svc Tool Alg Svc Tool Prop Prop Prop Prop Prop Prop Prop Prop Prop Prop Prop Prop Prop Prop Prop Prop Prop Prop Prop Prop Prop Prop Prop Prop Prop Prop Prop GANGA Project
Dumping the Complete Set of Properties • Starting point is LD_LIBRARY_PATH + XXXShr variables • A python script has been developed: • Load each available library • Find all available component “factories” • Instantiate an instance for each component (Service, Algorithm, Tool) • Get the lists of properties and their initial values (default values) • The current problems are: • Sometime instances of components can not be created in vacuum (dependencies to other components) • You can only find “once” the list of factories at library loading time GANGA Project
Application Flow • The “real” flow can only known once the application is running • Based on some conventions we could “guess” the execution flow and data flow • Looking at AppMgr.TopAlg, Sequencer.Members, etc. • At this moment is “impossible” to guess the Tools used by Algorithms AppMgr Seq1 Seq1 Seq1 Alg Alg Alg Tools Tools Tools GANGA Project
Adding new Conventions • Declaring Properties • Make explicit the “purpose” of the property (execution flow, data flow, etc.) • Declaring Tools to Algorithms • Declaring Tools in Algorithms (similarly as declaring Properties in the constructor) • Requires changes in Gaudi GANGA Project