Project

General

Profile

Feature #7889

Feature #7538: art service/module command-line helpers

Implement tasks 1 and 2 of feature #7538 - command-line helpers

Added by Kyle Knoepfel over 5 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Infrastructure
Target version:
Start date:
02/17/2015
Due date:
% Done:

100%

Estimated time:
32.00 h
Spent time:
Scope:
Internal
Experiment:
-
SSI Package:
art
Duration:

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

Related to art - Bug #8911: Modules and services need Boost.Filesystem and Boost.System: add to simple_plugin()Closed05/14/201505/14/2015

History

#1 Updated by Kyle Knoepfel over 5 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 over 5 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

Also available in: Atom PDF