Metadata-Version: 2.1
Name: opentuner
Version: 0.8.8
Summary: An extensible framework for program autotuning
Home-page: http://opentuner.org/
Author: Jason Ansel
Author-email: jansel@jansel.net
License: MIT
Platform: UNKNOWN
License-File: LICENSE.txt
License-File: AUTHORS.txt

OpenTuner
=========

Program autotuning has been demonstrated in many domains to achieve
better or more portable performance. However, autotuners themselves are
often not very portable between projects because using a domain informed
search space representation is critical to achieving good results and
because no single search technique performs best for all problems.

OpenTuner is a new framework for building domain-specific
multi-objective program autotuners. OpenTuner supports fully
customizable configuration representations, an extensible technique
representation to allow for domain-specific techniques, and an easy to
use interface for communicating with the tuned program. A key capability
inside OpenTuner is the use of ensembles of disparate search techniques
simultaneously, techniques which perform well will receive larger
testing budgets and techniques which perform poorly will be disabled.

Installation
------------

OpenTuner requires python 3.7+ and sqlite3 (or your
`supported <http://docs.sqlalchemy.org/en/rel_0_8/dialects/index.html>`__
database backend of choice). Install with:

::

   sudo pip install opentuner

or

::

   pip install --user opentuner

Development installation
------------------------

For development or running examples out of a git checkout, we recommend
using `miniconda3 <https://docs.conda.io/en/latest/miniconda.html>`__.

::

   conda create --name=opentuner python=3.8
   conda activate opentuner
   pip install -r requirements.txt -r optional-requirements.txt
   python setup.py develop

Checking Installation
---------------------

To check an installation you can run tests:

::

   pytest tests/*

Or run an example program:

::

   ./examples/rosenbrock/rosenbrock.py

Tutorials
---------

-  `Optimizing Block Matrix
   Multiplication <http://opentuner.org/tutorial/gettingstarted/>`__
-  `Creating OpenTuner
   Techniques <http://opentuner.org/tutorial/techniques/>`__.

Papers
------

-  `OpenTuner: An Extensible Framework for Program
   Autotuning <http://groups.csail.mit.edu/commit/papers/2014/ansel-pact14-opentuner.pdf>`__.
   Jason Ansel, Shoaib Kamil, Kalyan Veeramachaneni, Jonathan
   Ragan-Kelley, Jeffrey Bosboom, Una-May O’Reilly, Saman Amarasinghe.
   International Conference on Parallel Architectures and Compilation
   Techniques. Edmonton, Canada. August, 2014.
   `Slides <http://groups.csail.mit.edu/commit/papers/2014/ansel-pact14-opentuner-slides.pdf>`__.
   `Bibtex <http://groups.csail.mit.edu/commit/bibtex.cgi?key=ansel:pact:2014>`__.

Contributing Code
-----------------

The preferred way to contribute code to OpenTuner is to fork the project
on github and `submit a pull
request <https://www.openshift.com/wiki/github-workflow-for-submitting-pull-requests>`__.

Support
-------

OpenTuner is supported in part by the United States Department of Energy
`X-Stack <http://science.energy.gov/ascr/research/computer-science/ascr-x-stack-portfolio/>`__
program as part of `D-TEC <http://www.dtec-xstack.org/>`__.


