taucmdr.model.application module

Application data model.

Application fully describes the application configuration to be profiled, including the features the application uses, e.g. OpenMP, MPI, CUDA, etc. Each specific application configuration has its own application record. For example, if an application can operate with or without OpenMP then there are potentially two application records for the same application code: one specifying OpenMP is used and the other specifying OpenMP is not used.

class taucmdr.model.application.Application(record)[source]

Bases: taucmdr.mvc.model.Model

Application data model.

associations = {'projects': (<class 'taucmdr.model.project.Project'>, 'applications')}
attributes = {'projects': {'collection': <class 'taucmdr.model.project.Project'>, 'via': 'applications', 'description': 'projects using this application'}, 'name': {'primary_key': True, 'type': 'string', 'description': 'application configuration name', 'unique': True}, 'openmp': {'type': 'boolean', 'description': 'application uses OpenMP', 'default': False, 'argparse': {'flags': ('--openmp',)}, 'rebuild_required': True}, 'openacc': {'type': 'boolean', 'description': 'application uses OpenACC', 'default': False, 'argparse': {'flags': ('--openacc',)}, 'rebuild_required': True}, 'pthreads': {'type': 'boolean', 'description': 'application uses pthreads', 'default': False, 'argparse': {'flags': ('--pthreads',)}, 'rebuild_required': True}, 'python': {'type': 'boolean', 'description': 'application uses Python', 'default': False, 'argparse': {'flags': ('--python',)}, 'rebuild_required': True}, 'tbb': {'type': 'boolean', 'description': 'application uses Thread Building Blocks (TBB)', 'default': False, 'argparse': {'flags': ('--tbb',)}, 'rebuild_required': True}, 'mpi': {'type': 'boolean', 'default': False, 'description': 'application uses MPI', 'argparse': {'flags': ('--mpi',)}, 'compat': {True: <function attributes.<locals>._encourage_except_baseline at 0x7f2b75ff1440>}, 'rebuild_required': True}, 'caf': {'type': 'boolean', 'default': False, 'description': 'application uses Coarray Fortran', 'argparse': {'flags': ('--caf',)}, 'compat': {True: (<function attributes.<locals>._encourage_except_baseline at 0x7f2b75ff1440>, <function Model.construct_condition.<locals>.condition at 0x7f2b76672e60>)}, 'rebuild_required': True}, 'cuda': {'type': 'boolean', 'default': False, 'description': 'application uses NVIDIA CUDA', 'argparse': {'flags': ('--cuda',)}, 'compat': {True: <function Model.construct_condition.<locals>.condition at 0x7f2b766703b0>}, 'rebuild_required': True}, 'opencl': {'type': 'boolean', 'default': False, 'description': 'application uses OpenCL', 'argparse': {'flags': ('--opencl',)}, 'compat': {True: (<function Model.construct_condition.<locals>.condition at 0x7f2b766704d0>, <function attributes.<locals>._encourage_except_baseline at 0x7f2b75ff1440>)}, 'rebuild_required': True}, 'shmem': {'type': 'boolean', 'default': False, 'description': 'application uses SHMEM', 'argparse': {'flags': ('--shmem',)}, 'rebuild_required': True}, 'mpc': {'type': 'boolean', 'default': False, 'description': 'application uses MPC', 'argparse': {'flags': ('--mpc',)}, 'rebuild_required': True}, 'max_threads': {'type': 'integer', 'description': 'maximum number of threads', 'argparse': {'flags': ('--max-threads',), 'metavar': 'threads', 'nargs': '?', 'const': 25}, 'rebuild_required': True}, 'linkage': {'type': 'string', 'default': 'dynamic', 'description': 'application linkage', 'argparse': {'flags': ('--linkage',), 'metavar': '<linkage>', 'choices': ('static', 'dynamic')}, 'compat': {'static': <function Model.construct_condition.<locals>.condition at 0x7f2b766705f0>}, 'rebuild_required': True}}
check_compiler(compilers)[source]

Checks a list of compilers for compatibility with this application configuration.

Parameters:compilers (list) – Compiler instances that could possibly be compatible with this application.
Returns:A compiler from compilers that can be used to build the application.
Return type:Compiler
Raises:ConfigurationError – No compiler in compilers is compatible with this application.
is_selected()[source]

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

key_attribute = 'name'
name = 'Application'
on_update(changes)[source]
references = {(<class 'taucmdr.model.experiment.Experiment'>, 'application')}
class taucmdr.model.application.ApplicationController(model_cls, storage, context=None)[source]

Bases: taucmdr.mvc.controller.Controller

Application data controller.

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