Evolutionary algorithms for compiler-enabled program autotuning

Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2011. === This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections. === Cataloged from student submi...

Full description

Bibliographic Details
Main Author: Pacula, Maciej
Other Authors: Una-May O'Reilly.
Format: Others
Language:English
Published: Massachusetts Institute of Technology 2011
Subjects:
Online Access:http://hdl.handle.net/1721.1/66313
id ndltd-MIT-oai-dspace.mit.edu-1721.1-66313
record_format oai_dc
spelling ndltd-MIT-oai-dspace.mit.edu-1721.1-663132019-05-02T15:33:44Z Evolutionary algorithms for compiler-enabled program autotuning Pacula, Maciej Una-May O'Reilly. Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science. Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science. Electrical Engineering and Computer Science. Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2011. This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections. Cataloged from student submitted PDF version of thesis. Includes bibliographical references (p. 116-122). PetaBricks [4, 21, 7, 3, 5] is an implicitly parallel programming language which, through the process of autotuning, can automatically optimize programs for fast QoS-aware execution on any hardware. In this thesis we develop and evaluate two PetaBricks autotuners: INCREA and SiblingRivalry. INCREA, based on a novel bottom-up evolutionary algorithm, optimizes programs offline at compile time. SiblingRivalry improves on INCREA by optimizing online during a program's execution, dynamically adapting to changes in hardware and the operating system. Continuous adaptation is achieved through racing, where half of available resources are devoted to always-on learning. We evaluate INCREA and SiblingRivalry on a large number of real-world benchmarks, and show that our autotuners can significantly speed up PetaBricks programs with respect to many non-tuned and mis-tuned baselines. Our results indicate the need for a continuous learning loop that can optimize efficiently by exploiting online knowledge of a program's performance. The results leave open the question of how to solve the online optimization problem on all cores, i.e. without racing. by Maciej Pacula. M.Eng. 2011-10-17T19:49:31Z 2011-10-17T19:49:31Z 2011 2011 Thesis http://hdl.handle.net/1721.1/66313 755811471 eng M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission. http://dspace.mit.edu/handle/1721.1/7582 163 p. application/pdf Massachusetts Institute of Technology
collection NDLTD
language English
format Others
sources NDLTD
topic Electrical Engineering and Computer Science.
spellingShingle Electrical Engineering and Computer Science.
Pacula, Maciej
Evolutionary algorithms for compiler-enabled program autotuning
description Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2011. === This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections. === Cataloged from student submitted PDF version of thesis. === Includes bibliographical references (p. 116-122). === PetaBricks [4, 21, 7, 3, 5] is an implicitly parallel programming language which, through the process of autotuning, can automatically optimize programs for fast QoS-aware execution on any hardware. In this thesis we develop and evaluate two PetaBricks autotuners: INCREA and SiblingRivalry. INCREA, based on a novel bottom-up evolutionary algorithm, optimizes programs offline at compile time. SiblingRivalry improves on INCREA by optimizing online during a program's execution, dynamically adapting to changes in hardware and the operating system. Continuous adaptation is achieved through racing, where half of available resources are devoted to always-on learning. We evaluate INCREA and SiblingRivalry on a large number of real-world benchmarks, and show that our autotuners can significantly speed up PetaBricks programs with respect to many non-tuned and mis-tuned baselines. Our results indicate the need for a continuous learning loop that can optimize efficiently by exploiting online knowledge of a program's performance. The results leave open the question of how to solve the online optimization problem on all cores, i.e. without racing. === by Maciej Pacula. === M.Eng.
author2 Una-May O'Reilly.
author_facet Una-May O'Reilly.
Pacula, Maciej
author Pacula, Maciej
author_sort Pacula, Maciej
title Evolutionary algorithms for compiler-enabled program autotuning
title_short Evolutionary algorithms for compiler-enabled program autotuning
title_full Evolutionary algorithms for compiler-enabled program autotuning
title_fullStr Evolutionary algorithms for compiler-enabled program autotuning
title_full_unstemmed Evolutionary algorithms for compiler-enabled program autotuning
title_sort evolutionary algorithms for compiler-enabled program autotuning
publisher Massachusetts Institute of Technology
publishDate 2011
url http://hdl.handle.net/1721.1/66313
work_keys_str_mv AT paculamaciej evolutionaryalgorithmsforcompilerenabledprogramautotuning
_version_ 1719024075885510656