Show simple item record

dc.contributor.advisor Mellor-Crummey, John
dc.creatorDotsenko, Yuri
dc.date.accessioned 2018-12-03T18:32:24Z
dc.date.available 2018-12-03T18:32:24Z
dc.date.issued 2007
dc.identifier.urihttps://hdl.handle.net/1911/103666
dc.description.abstract The Message Passing Interface (MPI) is the library-based programming model employed by most scalable parallel applications today; however, it is not easy to use. To simplify program development, Partitioned Global Address Space (PGAS) languages have emerged as promising alternatives to MPI. Co-array Fortran (CAF), Titanium, and Unified Parallel C are explicitly parallel single-program multiple-data languages that provide the abstraction of a global shared memory and enable programmers to use one-sided communication to access remote data. This thesis focuses on evaluating PGAS languages and explores new language features to simplify the development of high performance programs in CAF. To simplify program development, we explore extending CAF with abstractions for group, Cartesian, and graph communication topologies that we call co-spaces. The combination of co-spaces, textual barriers, and single values enables effective analysis and optimization of CAF programs. We present an algorithm for synchronization strength reduction (SSR), which replaces textual barriers with faster point-to-point synchronization. This optimization is both difficult and error-prone for developers to perform manually. SSR-optimized versions of Jacobi iteration and the NAS MG and CG benchmarks yield performance similar to that of our best hand-optimized variants and demonstrate significant improvement over their barrier-based counterparts. To simplify the development of codes that rely on producer-consumer communication, we explore extending CAF with multi-version variables (MVVs). MVVs increase programmer productivity by insulating application developers from the details of buffer management, communication, and synchronization. Sweep3D, NAS BT, and NAS SP codes expressed using MVVs are much simpler than the fastest hand-coded variants, and experiments show that they yield similar performance. To avoid exposing latency in distributed memory systems, we explore extending CAF with distributed multithreading (DMT) based on the concept of function shipping. Function shipping facilitates co-locating computation with data as well as executing several asynchronous activities in the remote and local memory. DMT uses co-subroutines/cofunctions to ship computation with either blocking or non-blocking semantics. A prototype implementation and experiments show that DMT simplifies development of parallel search algorithms and the performance of DMT-based RandomAccess exceeds that of the reference MPI implementation.
dc.format.extent 342 pp
dc.language.iso eng
dc.subjectComputer science
Applied sciences
Distributed multithreading
Global address space languages
Parallel programming
Programmability
dc.title Expressiveness, programmability and portable high performance of global address space languages
dc.identifier.digital 304817579
dc.type.genre Thesis
dc.type.material Text
thesis.degree.department Computer Science
thesis.degree.discipline Engineering
thesis.degree.grantor Rice University
thesis.degree.level Doctoral
thesis.degree.name Doctor of Philosophy
dc.identifier.callno THESIS COMP.SCI. 2007 DOTSENKO V.1
dc.identifier.citation Dotsenko, Yuri. "Expressiveness, programmability and portable high performance of global address space languages." (2007) Diss., Rice University. https://hdl.handle.net/1911/103666.


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record