In Partial Fulfillment of the Requirements for the Degree of
Master of Science
Will defend his thesis
Locality of computation is critical to obtaining high performance on a broad variety of parallel architectures and applications. It is moreover an essential component of strategies for energy-efficient computing. OpenMP is a widely available industry standard for shared memory programming. With the pervasive deployment of multi-core computers and the steady growth in core count, a productive programming model such as OpenMP is increasingly expected to play an important role in adapting applications to this new hardware. However, OpenMP does not provide the programmer with explicit means to program for locality. Rather it presents the user with a "flat" memory model. In this thesis, we discuss the need for explicit programmer control of locality within the context of OpenMP and present some ideas on how this might be accomplished. We describe potential extensions to OpenMP that would enable the user to manage a program's data layout and to align tasks and data in order to minimize the cost of data access. We give examples showing the intended use of the proposed features, describe our current implementation and present the performance testing results. Our hope is that this work will lead to efforts that help OpenMP to be a major player on emerging, multi- and many-core architectures.