A. Definitions

Algorithm

A user-defined function registered for execution by the framework.

Algorithms often serve as operators in a higher-order function.

APA

Anode Plane Assembly, a physical far-detector unit comprising thousands of wires as a planar slice.

Backward compatibility (persisted data)

The ability to construct the in-memory representation of data from persisted information derived from an earlier in-memory representation of those data.

CHOF

See Configured higher-order function

Configured higher-order function

An entity created when registering an algorithm with the framework.

The registration includes the algorithm’s input/output data product requirements, the algorithm’s resource requirements, and the higher-order function to which the algorithm serves as an operator.

Data cell

A grouping of data products that is identifiable by the framework [1].

Each data cell has has a data layer label, which indicates the type of the data cell. All the data cells of a given data layer are of the same type. All the data cells of a given data layer are identifiable by the same type of index, and each is identified by a unique index value. In art, individual Run objects, Subrun objects and Event objects are examples of data cells.

Data layer

A group of data cells each of which has the same data layer label.

A data layer is one node in a data-layer hierarchy. The top layer of the graph is always the Job. All other layers are defined by the combination of the configuration of the framework job and the layers defined in the input data. By contrast, in art the data layers are Run, Subrun, and Event.

Data product

An object managed by the framework and for which provenance information is recorded.

A data product is produced by an algorithm (or is recovered from storage by a provider) and can be passed as an input to other algorithms. Data products determine the flow of execution of the graph of CHOFs configured in a framework program.

Data-layer hierarchy

A hierarchy of data layers.

A data-layer hierarchy is an acyclic graph of relationships of logical containment. The top layer of the hierarchy is always the Job. All other layers in the hierarchy are defined by the combination of the configuration of the framework job and the layers defined in the input data. In art, the data-layer hierarchy is Run-Subrun-Event.

Framework ecosystem

The ensemble of software delivered with the application framework.

Index set

A mathematical set that provides the indexes of an indexed family.

For the family \(a = [a_1, a_2, \dots, a_n] = \family{a}\), the index set \(\isetdefault\) is the set \(\{1,\ 2,\ \dots,\ n\}\).

Indexed family

A collection of elements identified by an index from an index set.

The term family is often used as a shorthand for indexed family. In art there was no direct representation of families. However, the sequence of Events processed by a given job is an example of a family of data cells. In a single art module, the sequence of event data products looked up by the module across all events is an example of a family of data products.

Metadata

Data that is ancillary to physics data.

Module

A compiled library that is dynamically loadable by the framework.

Provenance

A description of how the data were produced.

Examples include product parentage, job configuration, and library versions.

Reproducible

Identical inputs produce identical results.

Resource

A non-data software or hardware component managed by the program that can be used by algorithms.

Examples include:

  • CPU cores

  • CPU memory

  • GPUs

  • Network

  • Thread-unsafe utilities

  • Inference servers

  • Databases

Footnotes