Elixir: synthesis of parallel irregular algorithms

dc.contributor.advisorPingali, Keshaven
dc.contributor.committeeMemberMisra, Jayadeven
dc.contributor.committeeMemberBatory, Donen
dc.contributor.committeeMemberCook, Williamen
dc.contributor.committeeMemberSagiv, Moolyen
dc.contributor.committeeMemberGulwani, Sumiten
dc.creatorPrountzos, Dimitriosen
dc.creator.orcid0000-0002-5275-5590en
dc.date.accessioned2016-02-11T19:25:18Zen
dc.date.accessioned2018-01-22T22:29:30Z
dc.date.available2016-02-11T19:25:18Zen
dc.date.available2018-01-22T22:29:30Z
dc.date.issued2015-05en
dc.date.submittedMay 2015en
dc.date.updated2016-02-11T19:25:18Zen
dc.description.abstractAlgorithms in new application areas like machine learning and data analytics usually operate on unstructured sparse graphs. Writing efficient parallel code to implement these algorithms is very challenging for a number of reasons. First, there may be many algorithms to solve a problem and each algorithm may have many implementations. Second, synchronization, which is necessary for correct parallel execution, introduces potential problems such as data-races and deadlocks. These issues interact in subtle ways, making the best solution dependent both on the parallel platform and on properties of the input graph. Consequently, implementing and selecting the best parallel solution can be a daunting task for non-experts, since we have few performance models for predicting the performance of parallel sparse graph programs on parallel hardware. This dissertation presents a synthesis methodology and a system, Elixir, that addresses these problems by (i) allowing programmers to specify solutions at a high level of abstraction, and (ii) generating many parallel implementations automatically and using search to find the best one. An Elixir specification consists of a set of operators capturing the main algorithm logic and a schedule specifying how to efficiently apply the operators. Elixir employs sophisticated automated reasoning to merge these two components, and uses techniques based on automated planning to insert synchronization and synthesize efficient parallel code. Experimental evaluation of our approach demonstrates that the performance of the Elixir generated code is competitive to, and can even outperform, hand-optimized code written by expert programmers for many interesting graph benchmarks.en
dc.description.departmentComputer Sciencesen
dc.format.mimetypeapplication/pdfen
dc.identifierdoi:10.15781/T2PD72en
dc.identifier.urihttp://hdl.handle.net/2152/33278en
dc.language.isoenen
dc.subjectParallel programmingen
dc.subjectProgramming languagesen
dc.subjectCompilersen
dc.subjectStatic analysisen
dc.subjectSynthesisen
dc.titleElixir: synthesis of parallel irregular algorithmsen
dc.typeThesisen

Files