Optimizing for a Many-Core Architecture without Compromising Ease-of-Programming

dc.contributor.advisorVishkin, Uzien_US
dc.contributor.advisorBarua, Rajeeven_US
dc.contributor.authorCaragea, George Constantinen_US
dc.contributor.departmentComputer Scienceen_US
dc.contributor.publisherDigital Repository at the University of Marylanden_US
dc.contributor.publisherUniversity of Maryland (College Park, Md.)en_US
dc.date.accessioned2011-10-08T06:31:11Z
dc.date.available2011-10-08T06:31:11Z
dc.date.issued2011en_US
dc.description.abstractFaced with nearly stagnant clock speed advances, chip manufacturers have turned to parallelism as the source for continuing performance improvements. But even though numerous parallel architectures have already been brought to market, a universally accepted methodology for programming them for general purpose applications has yet to emerge. Existing solutions tend to be hardware-specific, rendering them difficult to use for the majority of application programmers and domain experts, and not providing scalability guarantees for future generations of the hardware. This dissertation advances the validation of the following thesis: it is possible to develop efficient general-purpose programs for a many-core platform using a model recognized for its simplicity. To prove this thesis, we refer to the eXplicit Multi-Threading (XMT) architecture designed and built at the University of Maryland. XMT is an attempt at re-inventing parallel computing with a solid theoretical foundation and an aggressive scalable design. Algorithmically, XMT is inspired by the PRAM (Parallel Random Access Machine) model and the architecture design is focused on reducing inter-task communication and synchronization overheads and providing an easy-to-program parallel model. This thesis builds upon the existing XMT infrastructure to improve support for efficient execution with a focus on ease-of-programming. Our contributions aim at reducing the programmer's effort in developing XMT applications and improving the overall performance. More concretely, we: (1) present a work-flow guiding programmers to produce efficient parallel solutions starting from a high-level problem; (2) introduce an analytical performance model for XMT programs and provide a methodology to project running time from an implementation; (3) propose and evaluate RAP -- an improved resource-aware compiler loop prefetching algorithm targeted at fine-grained many-core architectures; we demonstrate performance improvements of up to 34.79% on average over the GCC loop prefetching implementation and up to 24.61% on average over a simple hardware prefetching scheme; and (4) implement a number of parallel benchmarks and evaluate the overall performance of XMT relative to existing serial and parallel solutions, showing speedups of up to 13.89x vs.~ a serial processor and 8.10x vs.~parallel code optimized for an existing many-core (GPU). We also discuss the implementation and optimization of the Max-Flow algorithm on XMT, a problem which is among the more advanced in terms of complexity, benchmarking and research interest in the parallel algorithms community. We demonstrate better speed-ups compared to a best serial solution than previous attempts on other parallel platforms.en_US
dc.identifier.urihttp://hdl.handle.net/1903/12062
dc.subject.pqcontrolledComputer scienceen_US
dc.subject.pqcontrolledComputer engineeringen_US
dc.subject.pquncontrolledbenchmarken_US
dc.subject.pquncontrolledcompileren_US
dc.subject.pquncontrolledmaxflowen_US
dc.subject.pquncontrolledparallelen_US
dc.subject.pquncontrolledPRAMen_US
dc.subject.pquncontrolledprefetchingen_US
dc.titleOptimizing for a Many-Core Architecture without Compromising Ease-of-Programmingen_US
dc.typeDissertationen_US

Files

Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Caragea_umd_0117E_12318.pdf
Size:
1.23 MB
Format:
Adobe Portable Document Format