CpuTimingMetricTask¶
CpuTimingMetricTask creates a CPU timing Measurement based on data collected by @timeMethod.
It reads the raw timing data from the top-level PipelineTask’s metadata, which is identified by the task configuration.
This task always returns a smaller value than lsst.verify.tasks.commonMetrics.TimingMetricTask.
If it is much smaller, that may be a sign that the task is running inefficiently, since both metrics are normally run on task methods that don’t perform I/O.
Processing summary¶
CpuTimingMetricTask searches the metadata for @timeMethod-generated keys corresponding to the method of interest.
If it finds matching keys, it stores the elapsed time as a Measurement.
Python API summary¶
from lsst.verify.tasks.commonMetrics import CpuTimingMetricTask
-
class
(**kwargs)CpuTimingMetricTask A Task that computes a CPU time using metadata produced by the `lsst.utils.timer.timeMethod` decorator
...
-
attribute
config Access configuration fields and retargetable subtasks.
See also
See the CpuTimingMetricTask API reference for complete details.
Butler datasets¶
Input datasets¶
metadata- The metadata of the top-level pipeline task (e.g.,
CharacterizeImageTask,DiaPipeTask) being instrumented. This connection is usually configured indirectly through thelabelNametemplate as"{labelName}_metadata".
Output datasets¶
measurement- The value of the metric.
The dataset type should not be configured directly, but should be set
changing the
packageandmetrictemplate variables to the metric’s namespace (package, by convention) and in-package name, respectively. Subclasses that only support one metric should set these variables automatically.
Retargetable subtasks¶
No subtasks.
Configuration fields¶
connections¶
- Data type
lsst.pipe.base.config.Connections- Field type
ConfigField
metadataDimensions¶
saveLogOutput¶
saveMetadata¶
target¶
lsst.pipe.base.Task.getFullMetadata().Examples¶
from lsst.verify.tasks import CpuTimingMetricTask
config = CpuTimingMetricTask.ConfigClass()
config.connections.labelName = "diaPipe"
config.connections.package = "ap_association"
cofig.connections.metric = "DiaForcedSourceCpuTime"
config.target = "diaPipe:diaForcedSource.run"
task = CpuTimingMetricTask(config=config)
# config.connections provided for benefit of Pipeline
# but since we've defined it we might as well use it
metadata = butler.get(config.connections.metadata)
processCcdTime = task.run(metadata).measurement