Date of Award
Spring 5-15-2023
Degree Name
Doctor of Philosophy (PhD)
Degree Type
Dissertation
Abstract
The performance growth of individual processor cores has been slowed by physical limitations that are difficult to overcome; as such, the trend has been for processor manufacturers to instead increase the number of processing cores in a single chip. As a result, programmers must write parallel code to gain performance. While prior work on task-parallel platforms has simplified the process of writing throughput-oriented scientific applications, they have paid little attention to the types of workloads seen in modern interactive applications such as web services.
Interactive applications are programs which interact with users or other programs using input/output (I/O) operations and generally consist of tasks whose dependencies are more complex than scientific applications. Moreover, interactive applications have not only throughput requirements, but also responsiveness requirements for those tasks that interact with the user over I/O. Traditional task-parallel platforms, however, do not provide an efficient I/O interface, only focus on the execution time of the application as a whole, and either do not provide flexible enough abstractions for representing the dependencies of interactive applications or provide them in a manner that is not grounded in theory.
I contend that the broad notion of task parallelism, where the programmer expresses the logical parallelism of a program and the scheduling is handled by and underlying runtime, can simplify how modern interactive applications are written. In this dissertation, I describe how a task-parallel platform can better support modern interactive applications and empirically demonstrate that the proposed solutions indeed lead to a task-parallel platform that is competitive with highly hand-tuned interactive applications using traditional means of parallelization. For encoding the complex parallel dependencies of such applications, this dissertation describes provably and practically efficient support for futures in task-parallel platforms. We then add provably and practically efficient I/O to meet the I/O-intensive demands of interactive applications. Next, we investigate prioritization of tasks, which allows us to bound task latencies and achieve responsiveness. Finally, we explore two efficient schedulers that can be used by task-parallel platforms to support interactive applications.
Language
English (en)
Chair
I-Ting Angelina Lee
Committee Members
Umut A. Acar, Kunal Agrawal, Sanjoy Baruah, Christopher Gill,