Nov 17, 2016
Jolley Hall, Room 309
"Locality-Conscious Concurrency Platforms"
Advisor: Kunal Agrawal
Modern computing systems from all domains are becoming increasingly more parallel. Manufacturers are taking advantage of the increasing number of available transistors by packaging more and more computing resources together on a single chip or within a single system. This added computational power does not, however, come for free: writing good, high-performance parallel programs is come with a number of challenges including synchronization, scheduling, and load-balance. Concurrency platforms have emerged to address these challenges by providing structured parallel programming models for user’s to develop applications in and underlying runtime systems to do the heavy lifting. These platforms, however, often neglect to consider locality which, on modern systems, is a major component of achieving high performance.
In this work we develop locality-conscious concurrency platforms for multiple different structured parallel programming models. We address cache locality for streaming pipeline applications, NUMA locality for task-graphs and show experimentally that making locality-conscious decisions leads to better overall performance. We propose to apply locality-guided decisions to parallel_for loops in CilkPlus to leverage the inherent locality of many loop-based applications while continuing to provide good
load balance through CilkPlus’s randomized work stealing scheduler.