Command Line

Native binary command line

Timeloop consists of a set of three native binaries (timeloop-mapper, timeloop-model and timeloop-metrics). The general approach followed by all of these binaries is to take their inputs from a set of YAML keys, with a bare-minimal set of switches on the command line. Other directives that might be expected on the command line are expressed in the YAML keys, such as the mapper: key.

General command syntax

% timeloop-model <yaml-input-file>... [-o <output-directory>] 

% timeloop-mapper <yaml-input-file>... [-o <output-directory>]

% timeloop-metrics <yaml-input-file>... [-o <output-directory>]

YAML keys

All YAML keys can be placed into a single file, or separated out into multiple files based on the user's convenience. A user invokes Timeloop by supplying a list of these files on the command line. Some examples:

% timeloop-mapper arch.yaml problem.yaml constraints.yaml mapper.yaml

% timeloop-model arch.yaml problem.yaml mapping.yaml

% timeloop-mapper inputs/*.yaml

% timeloop-model experiment.yaml

To re-iterate, the file names and their order in the command line have no semantic meaning. Once invoked, Timeloop collects the union of all keys in these files and processes them based on the key names rather than the files they came from.

To understand how the YAML keys are used to describe architectures, problems, mappings, mapspace constraints, and search parameters, please see the Input Formats section.

Command-line switches

The switch -o specifies an output directory to place all output files in. For example:

% timeloop-mapper *.yaml -o ./output_dir

PyTimeloop command line:

% pytimeloop.py