art series 2.04¶
Previous series release notes
Next series release notes
New features¶
Normalized SQLite database schemas¶
The SQLite databases produced by the MemoryTracker
and TimeTracker
services have been normalized, enabling easier querying of database tables. This could be a breaking change for users who would like to extend tables in current database files. In order to migrate to the newer schemas, database files can be converted using the migration scripts:
${ART_DIR}/tools/migration/migrate_db_memoryTracker <old.db> [<new.db>] ${ART_DIR}/tools/migration/migrate_db_timeTracker <old.db> [<new.db>]The default new database name will be the old base name with the suffix "
_new.db
". (Resolves issue #13609.)
TimeTracker
and MemoryTracker
SQLite queries¶
Users may use the queries found in ${ART_DIR}/tools/sqlite/
to query the TimeTracker
and MemoryTracker
databases for various pieces of information:
- Time metrics including per event and per module execution time and various summaries (average, minimum, maximum, etc.), and
- Memory metrics including per event and per module
RSS
, virtual memory, and changes in the aforementioned quantities.
Please see here for instructions.
Input-file concatenation utilities¶
In order for input art/ROOT
files to be processed in the same art
job, they must have consistent BranchIDLists
objects stored on disk. An input file's BranchIDLists
object can now be queried through the file_info_dumper
--branch-ids
program option. The consistency rules for concatenating input files are listed here. (Resolves issue #13736.)
Specifying ignorable keys for parameter validation¶
A template argument has been added to the fhiclcpp
and art
Table
class templates, enabling users to specify a set of keys that should be ignored during configuration validation. For example, the following templates now exist:
One-argument template | Two-argument template |
fhicl::Table<T> |
fhicl::Table<T, KeysToIgnore> |
art::EDProducer::Table<T> |
art::EDProducer::Table<T, KeysToIgnore> |
etc. |
For details on the two-argument Table
templates, see the art documentation and the fhiclcpp documentation. (Resolves issue #11950.)
--status-bar
option when using --print-available*
(introduced in art 2.04.01)¶
A new program option can be invoked (--status-bar
) that indicates the progress in loading the libraries necessary when invoking the --print-available*
program options. For some experiments that have hundreds of modules, the time taken to load the information can be longer than desired. Since library-loading time within art
is governed almost entirely by the implementation of dlopen/dlsym
, which art
does not control, we instead provide a status bar that dynamically reports to the user the progress made in loading the relevant information.