Feature #7889
Feature #7538: art service/module command-line helpers
Implement tasks 1 and 2 of feature #7538 - command-line helpers
Description
As discussed at the art stakeholders meeting, the facilities of feature #7538 would be helpful. The subfeatures are being split into child issues. This issue controls tasks 1 and 2.
Related issues
History
#1 Updated by Kyle Knoepfel almost 6 years ago
- Category set to Infrastructure
- Target version set to 1.14.00
- Estimated time set to 32.00 h
#2 Updated by Kyle Knoepfel almost 6 years ago
- Status changed from Assigned to Resolved
- % Done changed from 0 to 100
Tasks 1 and 2 of issue #7538 have been implemented. Users may now specify the following options to the art
(or mu2e
, nova
, etc. ) executable:
--print-available-modules
¶
[user@node]$ art --print-available-modules ====================================================================================================================================== module_type Type Source location -------------------------------------------------------------------------------------------------------------------------------------- BlockingPrescaler filter /home/knoepfel/art/art/Framework/Modules/BlockingPrescaler_module.cc EmptyEvent source /home/knoepfel/art/art/Framework/Modules/EmptyEvent_source.cc FileDumperOutput output /home/knoepfel/art/art/Framework/Modules/FileDumperOutput_module.cc Prescaler filter /home/knoepfel/art/art/Framework/Modules/Prescaler_module.cc ProvenanceCheckerOutput output /home/knoepfel/art/art/Framework/Modules/ProvenanceCheckerOutput_module.cc RandomNumberSaver producer /home/knoepfel/art/art/Framework/Modules/RandomNumberSaver_module.cc RootInput source /home/knoepfel/art/art/Framework/IO/Root/RootInput_source.cc RootOutput output /home/knoepfel/art/art/Framework/IO/Root/RootOutput_module.cc ToolsTestAnalyzer analyzer /home/knoepfel/scratch/build-art/tools/ToolsTestAnalyzer_module.cc ToolsTestFilter filter /home/knoepfel/scratch/build-art/tools/ToolsTestFilter_module.cc ToolsTestProducer producer /home/knoepfel/scratch/build-art/tools/ToolsTestProducer_module.cc ======================================================================================================================================
--print-available-services
¶
[user@node]$ art --print-available-services =========================================================================================================================== The following types of services are included in the printout below: system = System services automatically loaded by art optional = Optional services provided by art user = Service provided by user/experiment Services Type Source location =========================================================================================================================== CurrentModule system /home/knoepfel/art/art/Framework/Services/System/CurrentModule_service.cc FileCatalogMetadata system /home/knoepfel/art/art/Framework/Services/System/FileCatalogMetadata_service.cc FloatingPointControl system /home/knoepfel/art/art/Framework/Services/System/FloatingPointControl_service.cc InFlightConfiguration user /home/knoepfel/art/test/Integration/InFlightConfiguration_service.cc MemoryAdjuster optional /home/knoepfel/art/art/Framework/Services/Optional/MemoryAdjuster_service.cc MemoryTracker optional /home/knoepfel/art/art/Framework/Services/Optional/MemoryTracker_service.cc MyService optional /home/knoepfel/art/test/Framework/Services/Optional/MyService_service.cc MyServiceUsingIface optional /home/knoepfel/art/test/Framework/Services/Optional/MyServiceUsingIface_service.cc PSTest optional /home/knoepfel/art/test/Framework/Services/Optional/PSTest_service.cc PSTestInterfaceImpl optional /home/knoepfel/art/test/Framework/Services/Optional/PSTestInterfaceImpl_service.cc PathSelection system /home/knoepfel/art/art/Framework/Services/System/PathSelection_service.cc RandomNumberGenerator optional /home/knoepfel/art/art/Framework/Services/Optional/RandomNumberGenerator_service.cc Reconfigurable user /home/knoepfel/art/test/Integration/Reconfigurable_service.cc ScheduleContext system /home/knoepfel/art/art/Framework/Services/System/ScheduleContext_service.cc ServiceUsing user /home/knoepfel/art/test/Integration/ServiceUsing_service.cc SimpleInteraction optional /home/knoepfel/art/art/Framework/Services/Optional/SimpleInteraction_service.cc SimpleMemoryCheck optional /home/knoepfel/art/art/Framework/Services/Optional/SimpleMemoryCheck_service.cc TFileService optional /home/knoepfel/art/art/Framework/Services/Optional/TFileService_service.cc Throwing user /home/knoepfel/art/test/Integration/Throwing_service.cc TimeTracker optional /home/knoepfel/art/art/Framework/Services/Optional/TimeTracker_service.cc Timing optional /home/knoepfel/art/art/Framework/Services/Optional/Timing_service.cc Tracer optional /home/knoepfel/art/art/Framework/Services/Optional/Tracer_service.cc TriggerNamesService system /home/knoepfel/art/art/Framework/Services/System/TriggerNamesService_service.cc TrivialFileDelivery optional /home/knoepfel/art/art/Framework/Services/Optional/TrivialFileDelivery_service.cc TrivialFileTransfer optional /home/knoepfel/art/art/Framework/Services/Optional/TrivialFileTransfer_service.cc Wanted user /home/knoepfel/art/test/Integration/Wanted_service.cc message system [ See https://cdcvs.fnal.gov/redmine/projects/art/wiki/Messagefacility ] ===========================================================================================================================
--module-description¶
A list of module specifications can be sent to this option. The accepted specification types are the simple ones typically included in a FHiCL file, as well as the full specification which may be necessary if there are two modules with the same prefix, but in different directories. For example, if the source code for two modules are here:
/some/dir1/prefix_module.cc /some/dir2/prefix_module.cc
specifying module_type: prefix
will be a run-time error since the scheduler cannot disambiguate between the desired library. In this situation, the full specification needs to be given. These are now provided whenever one uses the --module-description
option. For example:
[user@node]$ art --module-description UnitTestClient test/Integration/TestBitsOutput gibberish ==================================================================================================== module_type: UnitTestClient (or "test/Framework/Services/Basic/UnitTestClient") type : analyzer source : /home/knoepfel/art/test/Framework/Services/Basic/UnitTestClient_module.cc library: /home/knoepfel/scratch/build-art/lib/libtest_Framework_Services_Basic_UnitTestClient_module.so Description: [ provided in future release ] ==================================================================================================== module_type: TestBitsOutput (or "test/Integration/TestBitsOutput") type : output source : /home/knoepfel/art/test/Integration/TestBitsOutput_module.cc library: /home/knoepfel/scratch/build-art/lib/libtest_Integration_TestBitsOutput_module.so Description: [ provided in future release ] ==================================================================================================== Module: gibberish not found. ====================================================================================================
Note that the full specification for one of the modules (
test/Integration/TestBitsOutput
) was given, and the mapping to that particular library was given. The gibberish
module does not exist, and you are told thus.
Note that the Description
block of the printout is not yet supported.
--service-description¶
Receives a list of services that can be invoked in a FHiCL file. Similar to --module-description
. For example:
[user@node]$ art --service-description Tracer garbage Wanted ==================================================================================================== service : Tracer type : optional source : /home/knoepfel/art/art/Framework/Services/Optional/Tracer_service.cc library: /home/knoepfel/scratch/build-art/lib/libart_Framework_Services_Optional_Tracer_service.so Description: [ provided in future release ] ==================================================================================================== Service: garbage not found. ==================================================================================================== service : Wanted type : user source : /home/knoepfel/art/test/Integration/Wanted_service.cc library: /home/knoepfel/scratch/build-art/lib/libtest_Integration_Wanted_service.so Description: [ provided in future release ] ====================================================================================================
Again, Description
is not yet supported.
Implemented with 58db15605ac68b873cea5cd89c6da8b233f2468e.
#3 Updated by Kyle Knoepfel over 5 years ago
- Status changed from Resolved to Closed
#4 Updated by Christopher Green over 5 years ago
- Related to Bug #8911: Modules and services need Boost.Filesystem and Boost.System: add to simple_plugin() added