Repository logo
Log in(current)
Repository logoMIT Open ScholarshipDSpace@MIT
  1. Home
  2. MIT Open Access Articles
  3. MIT Open Access Articles
  4. SiblingRivalry: Online Autotuning Through Local Competitions

SiblingRivalry: Online Autotuning Through Local Competitions

Thumbnail Image
Download
Name

Sibling rivalry.pdf

Size

375.28 KB

Format

Adobe PDF

Checksum (MD5)

8d7124d081c972f5729c0511222e822d

Author(s)
Ansel, Jason Andrew
•
Pacula, Maciej
•
Wong, Yee Lok
•
Chan, Cy
•
Olszewski, Marek Krystyn
•
O'Reilly, Una-May
•
Amarasinghe, Saman P.
Date Issued
October 2012
Journal
Proceedings of the 2012 international conference on Compilers, architectures and synthesis for embedded systems - CASES '12
Publisher
Association for Computing Machinery
Citation
Ansel, Jason, Maciej Pacula, Yee Lok Wong, Cy Chan, Marek Olszewski, Una-May O’Reilly, and Saman Amarasinghe. “Siblingrivalry: Online Autotuning Through Local Competitions.” In Proceedings of the 2012 International Conference on Compilers, Architectures and Synthesis for Embedded Systems - CASES ’12 (2012), October 7-12, 2012, Tampere, Finland.
Version
Author's final manuscript
Abstract
Modern high performance libraries, such as ATLAS and FFTW, and programming languages, such as PetaBricks, have shown that autotuning computer programs can lead to significant speedups. However, autotuning can be burdensome to the deployment of a program, since the tuning process can take a long time and should be re-run whenever the program, microarchitecture, execution environment, or tool chain changes. Failure to re-autotune programs often leads to widespread use of sub-optimal algorithms. With the growth of cloud computing, where computations can run in environments with unknown load and migrate between different (possibly unknown) microarchitectures, the need for online autotuning has become increasingly important. We present SiblingRivalry, a new model for always-on online autotuning that allows parallel programs to continuously adapt and optimize themselves to their environment. In our system, requests are processed by dividing the available cores in half, and processing two identical requests in parallel on each half. Half of the cores are devoted to a known safe program configuration, while the other half are used for an experimental program configuration chosen by our self-adapting evolutionary algorithm. When the faster configuration completes, its results are returned, and the slower configuration is terminated. Over time, this constant experimentation allows programs to adapt to changing dynamic environments and often outperform the original algorithm that uses the entire system.
MIT Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Terms of Use
Creative Commons Attribution-Noncommercial-Share Alike
http://creativecommons.org/licenses/by-nc-sa/4.0/
Persistent DSpace Link
http://hdl.handle.net/1721.1/85937
DOI of Published Version
https://doi.org/10.1145/2380403.2380425
Repository logo
PrivacyPermissionsAccessibilityContact us
Repository logo
Notify us about copyright concerns.