taucmdr.model.measurement module

Measurement data model.

Measurement completely describes the performance data measurements we wish to perform. It is often the case that we do not wish to gather all the available data in a single run since overhead would be extreme. Different measurements allow us to take different views of the application’s performance.

class taucmdr.model.measurement.Measurement(record)[source]

Bases: taucmdr.mvc.model.Model

Measurement data model.

_check_metrics()[source]

Check for TIME in metrics, add it if missing, ensure it is first

associations = {'projects': (<class 'taucmdr.model.project.Project'>, 'measurements')}
attributes = {'projects': {'collection': <class 'taucmdr.model.project.Project'>, 'via': 'measurements', 'description': 'projects using this measurement'}, 'name': {'primary_key': True, 'type': 'string', 'unique': True, 'description': 'measurement configuration name'}, 'baseline': {'type': 'boolean', 'default': False, 'description': 'completely disable all instrumentation and measure wall clock time via the OS', 'argparse': {'flags': ('--baseline',), 'group': 'instrumentation'}, 'compat': {True: (<function Model.construct_condition.<locals>.condition at 0x7f2b7667c9e0>, <function Model.construct_condition.<locals>.condition at 0x7f2b7667cb90>)}}, 'profile': {'type': 'string', 'default': 'tau', 'description': 'generate application profiles', 'argparse': {'flags': ('--profile',), 'group': 'output format', 'metavar': '<format>', 'nargs': '?', 'choices': ('tau', 'merged', 'cubex', 'sqlite', 'none'), 'const': 'tau'}, 'compat': {'cubex': <function Model.construct_condition.<locals>.condition at 0x7f2b7667cd40>, 'merged': <function attributes.<locals>._merged_profile_compat at 0x7f2b7667c680>, 'sqlite': <function Model.construct_condition.<locals>.condition at 0x7f2b7667cef0>}, 'rebuild_required': True}, 'trace': {'type': 'string', 'default': 'none', 'description': 'generate application traces', 'argparse': {'flags': ('--trace',), 'group': 'output format', 'metavar': '<format>', 'nargs': '?', 'choices': ('slog2', 'otf2', 'none'), 'const': 'otf2'}, 'compat': {'otf2': <function Model.construct_condition.<locals>.condition at 0x7f2b7668e0e0>, <function attributes.<locals>.<lambda> at 0x7f2b7668e170>: <function attributes.<locals>._discourage_callpath at 0x7f2b7667c7a0>}, 'rebuild_required': True}, 'sample': {'type': 'boolean', 'default': True, 'description': 'use event-based sampling to gather performance data', 'argparse': {'flags': ('--sample',), 'group': 'instrumentation'}, 'compat': {True: (<function Model.construct_condition.<locals>.condition at 0x7f2b7668e320>, <function Model.construct_condition.<locals>.condition at 0x7f2b7668e440>, <function Model.construct_condition.<locals>.condition at 0x7f2b7668e5f0>, <function Model.construct_condition.<locals>.condition at 0x7f2b7668e710>, <function Model.construct_condition.<locals>.condition at 0x7f2b7668e8c0>, <function Model.construct_condition.<locals>.condition at 0x7f2b7668ea70>)}}, 'source_inst': {'type': 'string', 'default': 'never', 'description': 'use hooks inserted into the application source code to gather performance data', 'argparse': {'flags': ('--source-inst',), 'group': 'instrumentation', 'metavar': 'mode', 'nargs': '?', 'choices': ('automatic', 'manual', 'never'), 'const': 'automatic'}, 'compat': {<function attributes.<locals>.<lambda> at 0x7f2b7668eb00>: (<function Model.construct_condition.<locals>.condition at 0x7f2b7668ecb0>, <function Model.construct_condition.<locals>.condition at 0x7f2b7668ee60>)}, 'rebuild_required': True}, 'compiler_inst': {'type': 'string', 'default': 'never', 'description': 'use compiler-generated callbacks to gather performance data', 'argparse': {'flags': ('--compiler-inst',), 'group': 'instrumentation', 'metavar': 'mode', 'nargs': '?', 'choices': ('always', 'fallback', 'never'), 'const': 'always'}, 'compat': {<function attributes.<locals>.<lambda> at 0x7f2b7668eef0>: (<function Model.construct_condition.<locals>.condition at 0x7f2b766a80e0>, <function Model.construct_condition.<locals>.condition at 0x7f2b766a8200>, <function Model.construct_condition.<locals>.condition at 0x7f2b766a83b0>, <function Model.construct_condition.<locals>.condition at 0x7f2b766a84d0>, <function Model.construct_condition.<locals>.condition at 0x7f2b766a8680>, <function Model.construct_condition.<locals>.condition at 0x7f2b766a8830>)}, 'rebuild_required': True}, 'mpi': {'type': 'boolean', 'default': False, 'description': 'use MPI library wrapper to measure time spent in MPI methods', 'argparse': {'flags': ('--mpi',)}, 'compat': {True: (<function Model.construct_condition.<locals>.condition at 0x7f2b766a89e0>, <function Model.construct_condition.<locals>.condition at 0x7f2b766a8b00>, <function Model.construct_condition.<locals>.condition at 0x7f2b766a8c20>, <function Model.construct_condition.<locals>.condition at 0x7f2b766a8d40>, <function Model.construct_condition.<locals>.condition at 0x7f2b766a8ef0>)}, 'rebuild_required': True}, 'openmp': {'type': 'string', 'default': 'ignore', 'description': 'use specified library to measure time spent in OpenMP directives', 'argparse': {'flags': ('--openmp',), 'metavar': 'library', 'choices': ('ignore', 'opari', 'ompt'), 'nargs': '?', 'const': 'ompt'}, 'compat': {'opari': (<function Model.construct_condition.<locals>.condition at 0x7f2b766710e0>, <function Model.construct_condition.<locals>.condition at 0x7f2b76671290>), 'ompt': (<function Model.construct_condition.<locals>.condition at 0x7f2b76671440>, <function Model.construct_condition.<locals>.condition at 0x7f2b766715f0>)}, 'rebuild_required': True}, 'openacc': {'type': 'boolean', 'default': False, 'description': 'use OpeACC library wrapper to measure time spent in OpenACC methods', 'argparse': {'flags': ('--openacc',)}, 'compat': {True: (<function Model.construct_condition.<locals>.condition at 0x7f2b766717a0>, <function Model.construct_condition.<locals>.condition at 0x7f2b766718c0>, <function Model.construct_condition.<locals>.condition at 0x7f2b76671a70>)}, 'rebuild_required': True}, 'cuda': {'type': 'boolean', 'default': False, 'description': 'measure cuda events via the CUPTI interface', 'argparse': {'flags': ('--cuda',)}, 'compat': {True: (<function Model.construct_condition.<locals>.condition at 0x7f2b76671c20>, <function Model.construct_condition.<locals>.condition at 0x7f2b76671d40>, <function Model.construct_condition.<locals>.condition at 0x7f2b76671ef0>)}}, 'shmem': {'type': 'boolean', 'default': False, 'description': 'use SHMEM library wrapper to measure time spent in SHMEM methods', 'argparse': {'flags': ('--shmem',)}, 'compat': {True: (<function Model.construct_condition.<locals>.condition at 0x7f2b766800e0>, <function Model.construct_condition.<locals>.condition at 0x7f2b76680200>, <function Model.construct_condition.<locals>.condition at 0x7f2b76680320>, <function Model.construct_condition.<locals>.condition at 0x7f2b76680440>, <function Model.construct_condition.<locals>.condition at 0x7f2b766805f0>)}, 'rebuild_required': True}, 'opencl': {'type': 'boolean', 'default': False, 'description': 'measure OpenCL events', 'argparse': {'flags': ('--opencl',)}, 'compat': {True: (<function Model.construct_condition.<locals>.condition at 0x7f2b766807a0>, <function Model.construct_condition.<locals>.condition at 0x7f2b766808c0>, <function Model.construct_condition.<locals>.condition at 0x7f2b76680a70>)}}, 'callpath': {'type': 'integer', 'default': 100, 'description': 'maximum depth for callpath recording', 'argparse': {'flags': ('--callpath',), 'group': 'data', 'metavar': 'depth', 'nargs': '?', 'const': 100}}, 'unwind_depth': {'type': 'integer', 'default': 0, 'description': 'Record callstack to specified depth', 'argparse': {'flags': ('--unwind-depth',), 'group': 'data', 'metavar': 'depth', 'nargs': '?', 'const': 10}, 'compat': {<function attributes.<locals>.<lambda> at 0x7f2b76680b00>: <function Model.construct_condition.<locals>.condition at 0x7f2b76680cb0>}}, 'io': {'type': 'boolean', 'default': False, 'description': 'measure time spent in POSIX I/O calls', 'argparse': {'flags': ('--io',)}, 'compat': {True: <function Model.construct_condition.<locals>.condition at 0x7f2b76680e60>}}, 'heap_usage': {'type': 'boolean', 'default': False, 'description': 'measure heap memory usage', 'argparse': {'flags': ('--heap-usage',), 'group': 'memory'}, 'compat': {True: <function Model.construct_condition.<locals>.condition at 0x7f2b7669f050>}}, 'system_load': {'type': 'boolean', 'default': False, 'description': 'measure system load', 'argparse': {'flags': ('--system-load',), 'group': 'data'}, 'compat': {True: <function Model.construct_condition.<locals>.condition at 0x7f2b7669f200>}}, 'memory_alloc': {'type': 'boolean', 'default': False, 'description': 'record memory allocation/deallocation events and detect leaks', 'argparse': {'flags': ('--memory-alloc',), 'group': 'memory'}, 'compat': {True: <function Model.construct_condition.<locals>.condition at 0x7f2b7669f3b0>}}, 'metrics': {'type': 'array', 'default': ['TIME'], 'description': 'a space separated list of performance metrics to gather, e.g. TIME PAPI_FP_INS', 'argparse': {'flags': ('--metrics',), 'group': 'data', 'metavar': '<metric>'}, 'compat': {<function attributes.<locals>.<lambda> at 0x7f2b7669f440>: (<function Model.construct_condition.<locals>.condition at 0x7f2b7669f5f0>, <function Model.construct_condition.<locals>.condition at 0x7f2b7669f710>), <function attributes.<locals>.<lambda> at 0x7f2b7669f7a0>: <function Model.construct_condition.<locals>.condition at 0x7f2b7669f950>}, 'rebuild_required': True}, 'keep_inst_files': {'type': 'boolean', 'default': False, 'description': "don't remove instrumented files after compilation", 'argparse': {'flags': ('--keep-inst-files',), 'group': 'instrumentation'}, 'compat': {True: <function Model.construct_condition.<locals>.condition at 0x7f2b7669fb00>}}, 'reuse_inst_files': {'type': 'boolean', 'default': False, 'description': 'reuse and preserve instrumented files after compilation', 'argparse': {'flags': ('--reuse-inst-files',), 'group': 'instrumentation'}, 'compat': {True: <function Model.construct_condition.<locals>.condition at 0x7f2b7669fcb0>}}, 'comm_matrix': {'type': 'boolean', 'default': False, 'description': 'record the point-to-point communication matrix', 'argparse': {'flags': ('--comm-matrix',)}, 'compat': {True: <function Model.construct_condition.<locals>.condition at 0x7f2b7669fe60>}}, 'throttle': {'type': 'boolean', 'default': True, 'description': 'throttle lightweight events to reduce overhead', 'argparse': {'flags': ('--throttle',)}}, 'throttle_per_call': {'type': 'integer', 'default': 10, 'description': 'lightweight event duration threshold in microseconds', 'argparse': {'flags': ('--throttle-per-call',), 'metavar': 'us', 'nargs': '?', 'const': 10}}, 'throttle_num_calls': {'type': 'integer', 'default': 100000, 'description': 'lightweight event call count threshold', 'argparse': {'flags': ('--throttle-num-calls',), 'metavar': 'count', 'nargs': '?', 'const': 100000}}, 'sample_resolution': {'type': 'string', 'default': 'line', 'description': 'sample resolution', 'argparse': {'flags': ('--sample-resolution',), 'choices': ('file', 'function', 'line'), 'metavar': 'file/function/line', 'nargs': '?'}, 'compat': {True: <function Model.construct_condition.<locals>.condition at 0x7f2b766ad050>}}, 'sampling_period': {'type': 'integer', 'default': 5000, 'description': 'default sampling period in microseconds', 'argparse': {'flags': ('--sampling-period',), 'metavar': 'us', 'nargs': '?', 'const': 5000}, 'compat': {True: <function Model.construct_condition.<locals>.condition at 0x7f2b766ad200>}}, 'track_memory_footprint': {'type': 'boolean', 'default': False, 'description': 'track memory footprint', 'argparse': {'flags': ('--track-memory-footprint',), 'group': 'memory'}, 'compat': {True: <function Model.construct_condition.<locals>.condition at 0x7f2b766ad3b0>}}, 'metadata_merge': {'type': 'boolean', 'default': True, 'description': 'merge metadata of TAU profiles', 'argparse': {'flags': ('--metadata-merge',)}}, 'callsite': {'type': 'boolean', 'default': False, 'description': 'record event callsites', 'argparse': {'flags': ('--callsite',)}, 'compat': {True: (<function Model.construct_condition.<locals>.condition at 0x7f2b766ad560>, <function Model.construct_condition.<locals>.condition at 0x7f2b766ad680>, <function Model.construct_condition.<locals>.condition at 0x7f2b766ad830>, <function Model.construct_condition.<locals>.condition at 0x7f2b766ad950>, <function Model.construct_condition.<locals>.condition at 0x7f2b766adb00>, <function Model.construct_condition.<locals>.condition at 0x7f2b766adcb0>)}}, 'select_file': {'type': 'string', 'description': 'specify selective instrumentation file', 'argparse': {'flags': ('--select-file',), 'metavar': 'path'}, 'compat': {<class 'bool'>: (<function attributes.<locals>._ensure_instrumented at 0x7f2b7667c830>, <function Model.construct_condition.<locals>.condition at 0x7f2b766ade60>, <function Model.construct_condition.<locals>.condition at 0x7f2b7667e050>)}, 'rebuild_required': True}, 'update_nightly': {'type': 'boolean', 'default': False, 'description': 'Download newest TAU nightly', 'argparse': {'flags': ('--update-nightly',)}, 'compat': {<class 'bool'>: <function Model.construct_condition.<locals>.condition at 0x7f2b7667e200>}}, 'ptts': {'type': 'boolean', 'default': False, 'description': 'enable support for PTTS', 'argparse': {'flags': ('--ptts',)}}, 'ptts_post': {'type': 'boolean', 'default': False, 'description': 'skip application sampling and post-process existing PTTS sample files', 'argparse': {'flags': ('--ptts-post',)}, 'compat': {<class 'bool'>: <function Model.construct_condition.<locals>.condition at 0x7f2b7667e3b0>}}, 'ptts_sample_flags': {'type': 'string', 'default': '', 'description': 'flags to pass to PTTS sample_ts command', 'argparse': {'flags': ('--ptts-sample-flags',), 'metavar': 'sample_flags'}, 'compat': {<class 'bool'>: <function Model.construct_condition.<locals>.condition at 0x7f2b7667e560>}}, 'ptts_restart': {'type': 'boolean', 'default': False, 'description': 'enable restart support within PTTS, allowing application to continuerunning and be reinstrumented after stop', 'argparse': {'flags': ('--ptts-restart',)}, 'compat': {<class 'bool'>: <function Model.construct_condition.<locals>.condition at 0x7f2b7667e710>}}, 'ptts_start': {'type': 'string', 'default': '', 'description': 'address at which to start a PTTS sampling region', 'argparse': {'flags': ('--ptts-start',)}, 'compat': {<class 'bool'>: <function Model.construct_condition.<locals>.condition at 0x7f2b7667e8c0>}}, 'ptts_stop': {'type': 'string', 'default': '', 'description': 'address at which to stop a PTTS sampling region', 'argparse': {'flags': ('--ptts-stop',)}, 'compat': {<class 'bool'>: <function Model.construct_condition.<locals>.condition at 0x7f2b7667ea70>}}, 'ptts_report_flags': {'type': 'string', 'default': '', 'description': 'flags to pass to PTTS report_ts command', 'argparse': {'flags': ('--ptts-report-flags',)}, 'compat': {<class 'bool'>: <function Model.construct_condition.<locals>.condition at 0x7f2b7667ec20>}}, 'extra_tau_options': {'type': 'array', 'description': 'append extra options to TAU_OPTIONS environment variable (not recommended)', 'rebuild_on_change': True, 'argparse': {'flags': ('--extra-tau-options',), 'nargs': '+', 'metavar': '<option>'}, 'compat': {<class 'bool'>: (<function Model.construct_condition.<locals>.condition at 0x7f2b7667edd0>, <function Model.construct_condition.<locals>.condition at 0x7f2b7667eef0>, <function Model.construct_condition.<locals>.condition at 0x7f2b766a0050>)}}, 'mpit': {'type': 'boolean', 'default': False, 'description': 'MPI-T profiling interface', 'argparse': {'flags': ('--mpit',)}}, 'level_zero': {'type': 'boolean', 'default': False, 'description': 'Level zero ', 'argparse': {'flags': ('--level_zero',)}}, 'force_tau_options': {'type': 'array', 'description': 'forcibly set the TAU_OPTIONS environment variable (not recommended)', 'rebuild_on_change': True, 'argparse': {'flags': ('--force-tau-options',), 'nargs': '+', 'metavar': '<option>'}, 'compat': {<class 'bool'>: (<function Model.construct_condition.<locals>.condition at 0x7f2b766a0200>, <function Model.construct_condition.<locals>.condition at 0x7f2b766a0320>, <function Model.construct_condition.<locals>.condition at 0x7f2b766a0440>)}}, 'tag': {'type': 'string', 'description': 'Narrow search for tags', 'default': '', 'argparse': {'flags': ('--tag',), 'nargs': '+', 'metavar': '<tags>'}}}
is_selected()[source]

Returns True if this target configuration is part of the selected experiment, False otherwise.

key_attribute = 'name'
name = 'Measurement'
on_create()[source]
on_update(changes)[source]
references = {(<class 'taucmdr.model.experiment.Experiment'>, 'measurement')}
class taucmdr.model.measurement.MeasurementController(model_cls, storage, context=None)[source]

Bases: taucmdr.mvc.controller.Controller

Measurement data controller.

delete(keys, context=True)[source]
taucmdr.model.measurement.attributes()[source]

Construct attributes dictionary for the measurement model.

We build the attributes in a function so that classes like taucmdr.module.project.Project are fully initialized and usable in the returned dictionary.

Returns:Attributes dictionary.
Return type:dict