Font Size: a A A

Scheduling deterministric parallel programs

Posted on:2010-04-03Degree:Ph.DType:Thesis
University:Carnegie Mellon UniversityCandidate:Spoonhower, Daniel JohnFull Text:PDF
GTID:2448390002970460Subject:Computer Science
Abstract/Summary:
Deterministic parallel programs yield the same results regardless of how parallel tasks are interleaved or assigned to processors. This drastically simplifies reasoning about the correctness of these programs. However, the performance of parallel programs still depends upon this assignment of tasks, as determined by a part of the language implementation called the scheduling policy.;In this thesis, I define a novel cost semantics for a parallel language that enables programmers to reason formally about different scheduling policies. This cost semantics forms a basis for a suite of prototype profiling tools. These tools allow programmers to simulate and visualize program execution under different scheduling policies and understand how the choice of policy affects application memory use.;My cost semantics also provides a specification for implementations of the language. As an example of such an implementation, I have extended MLton, a compiler and runtime system for Standard ML, with support for parallelism and implemented several different scheduling policies. Using my cost semantics and profiler, I found a memory leak caused by a bug in one of the existing optimizations in MLton.;In addition to memory use, this cost semantics precisely captures when a parallel schedule deviates from the uni-processor execution of a given program. The number of deviations acts as a important conceptual tool in reasoning about concrete measures of performance I use this metric to derive new bounds on the overhead of existing work stealing implementations of parallel futures and to suggest more efficient alternatives.;This work represents an important step in understanding how to develop programs and programming languages for multi-core and multi-processor architectures. In particular, a cost semantics provides an abstraction that helps to ensure adequate performance without sacrificing the ability to reason about programs at a high level.
Keywords/Search Tags:Programs, Parallel, Scheduling, Cost semantics
Related items