Back to results

Massachusetts Institute of Technology

Performance engineering of multicore software : developing a science of fast code for the post-Moore era

Abstract

dc:description.abstract

The end of Moore's Law, which experts predict to occur in as few as 5 years, means that even average programmers will need to be able to write fast code. Software performance engineering offers great promise to provide computer performance gains in the post-Moore era, but developing efficient software today requires substantial expertise and arcane knowledge of hardware and software systems. Multicore processors are particularly challenging to use efficiently, because doing so requires programmers to engage in parallel programming and to deal with nondeterministic program behavior and parallel scalability concerns. I contend that we can remedy the ad hoc and unprincipled nature of software performance engineering by creating simple and integrated programming technologies for writing fast code. This thesis studies how such technologies can be built by examining nine artifacts that enable principled approaches to tackling nondeterminism and scalability concerns in writing efficient multicore software. Five artifacts develop programming models and theories of performance for writing multicore programs that are efficient both in theory and in practice: - PBFS, a work-efficient parallel breadth-first search algorithm. - The Prism chromatic-scheduling algorithm, which executes dynamic data-graph computations deterministically in parallel. - Ordering heuristics for parallel greedy graph coloring algorithms. - The pedigree mechanism and DotMix algorithm for generating pseudorandom numbers deterministically in parallel in dynamic multithreaded programs. - The Cilk-P concurrency platform, which provides linguistic and runtime support for deterministic on-the-fly pipeline parallelism. Three artifacts strive to embed abstract programming and performance models into tools and compilers: - Cilkprof, a profiler that efficiently measures how each call site in a Cilk program contributes to the program's scalability. - Rader, a provably good race detector for Cilk programs that use reducer hyperobjects. - The Tapir compiler intermediate representation, which enables existing compiler optimizations for serial code to optimize across parallel control flow with minimal changes. The final artifact tackles the complexity of creating efficient diagnostic tools: - CSI, a framework that provides comprehensive static instrumentation for efficient dynamic-analysis tools. Together, these artifacts contribute to developing a more coherent science of fast code for multicores than exists today.

Degree

thesis:*
Department dc:contributor.department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science.
Grantor dc:publisher
Massachusetts Institute of Technology
Year dc:date.issued
2016

Author and committee

dc:creator, dc:contributor.*
Author dc:creator
  • Schardl, Tao Benjamin
Advisor dc:contributor.advisor
  • Charles E. Leiserson.

Subjects

dc:subject × 1

Rights

dc:rights
Statement dc:rights
  • MIT theses are protected by copyright. They may be viewed, downloaded, or printed from this source but further reproduction or distribution in any format is prohibited without written permission.
Language dc:language.iso
eng

Identifiers

dc:identifier.*
Handle dc:identifier.uri
http://hdl.handle.net/1721.1/107290
OAI identifier oai:identifier
oai:dspace.mit.edu:1721.1/107290

Chain of custody

source
Harvested from
MIT
Base URL
dspace.mit.edu/oai/request
Last updated
2026-07-22
Source record
OAI-PMH GetRecord
citation

Schardl, Tao Benjamin. Performance engineering of multicore software : developing a science of fast code for the post-Moore era. Massachusetts Institute of Technology, 2016. http://hdl.handle.net/1721.1/107290