1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-03-23 02:58:35 +00:00
Jonathan Paynter dc64152188 configuration, types: Add support for sweeps
Sweeps are handled by one of three handlers, ``autofreq``, ``range`` and
``autoparam``. ``range`` allows the user to manually specify values for
a parameter in the agenda; ``autofreq`` allows cpu frequencies to be
swept through, and autoparam allows other parameters to be swept
through.

autoparam requries the parameter to have ``allowed_values`` specified,
and the sweep specification must supply the plugin name and parameter
name as:
``
	sweep(autoparam):
		param: <param name>
		plugin: <plugin name>
``

autofreq can be used with an empty value:
``
	sweep(autofreq):
``
to sweep through all values of ``frequency`` by default, although if
``plugin`` is specified, other parameters within cpufreq can be swept
through:
``
	sweep(autofreq):
		param: cpu0_frequency
``

For either of the above 'automatic' sweeps, a minimum and/or maximum can
be specified to limit the values generated in the sweep:
``
	sweep(autofreq):
		param: cpu0_frequency
		min: 1000000
		max: 1700000
``

``range`` sweeps support two specification syntaxes: one for manual
specification of a list, and another for a range of values. These sweeps
only accept the plugin name as a parameter:
``
	sweep(range):
		threads: [1, 3, 5, 7]
``
or
``
	sweep(range):
		threads: 1-8,2
		# start-stop[,step]
``
These both produce the same result. step is optional and defaults to 1.

Any sweep specified in a workload entry is equivalent to manually
specifying individual workload entries, each with one of the possible
values of the sweep.

Sweeps specified in sections will create the equivalent of a section
group, each section in that group with one of the sweep values. When the
group name is specified, the 'expanded' section entry will maintain that
group name, otherwise will generate its own.

If multiple sweeps are specified in one entry, then this will be
expanded to one entry for every combination of values of each sweep.
2020-09-10 18:07:16 +01:00
2019-12-03 14:03:18 +00:00

Workload Automation
+++++++++++++++++++

Workload Automation (WA) is a framework for executing workloads and collecting
measurements on Android and Linux devices. WA includes automation for nearly 40
workloads and supports some common instrumentation (ftrace, hwmon) along with a
number of output formats.

WA is designed primarily as a developer tool/framework to facilitate data driven
development by providing a method of collecting measurements from a device in a
repeatable way.

WA is highly extensible. Most of the concrete functionality is implemented via
plug-ins, and it is easy to write new plug-ins to support new device types,
workloads, instruments or output processing.


Requirements
============

- Python 3.5+
- Linux (should work on other Unixes, but untested)
- Latest Android SDK (ANDROID_HOME must be set) for Android devices, or
- SSH for Linux devices


Installation
============

To install::

        git clone git@github.com:ARM-software/workload-automation.git workload-automation
        sudo -H python setup [install|develop]

Note: A `requirements.txt` is included however this is designed to be used as a
reference for known working versions rather than as part of a standard
installation.

Please refer to the `installation section <http://workload-automation.readthedocs.io/en/latest/user_information.html#install>`_
in the documentation for more details.


Basic Usage
===========

Please see the `Quickstart <http://workload-automation.readthedocs.io/en/latest/user_information.html#user-guide>`_
section of the documentation.


Documentation
=============

You can view pre-built HTML documentation `here <http://workload-automation.readthedocs.io/en/latest/>`_.

Documentation in reStructuredText format may be found under ``doc/source``. To
compile it into cross-linked HTML, make sure you have `Sphinx
<http://sphinx-doc.org/install.html>`_ installed, and then ::

        cd doc
        make html


License
=======

Workload Automation is distributed under `Apache v2.0 License
<http://www.apache.org/licenses/LICENSE-2.0>`_. Workload automation includes
binaries distributed under different licenses (see LICENSE files in specific
directories).


Feedback, Contributions and Support
===================================

- Please use the GitHub Issue Tracker associated with this repository for
  feedback.
- ARM licensees may contact ARM directly via their partner managers.
- We welcome code contributions via GitHub Pull requests. Please see
  "Contributing Code" section of the documentation for details.
Description
No description provided
Readme Apache-2.0 208 MiB
Languages
Python 75.9%
Java 15.8%
C 5.4%
Shell 2.5%
Dockerfile 0.3%