High-performance computing with PetaBricks and Julia
Author(s)
Wong, Yee Lok, Ph. D. Massachusetts Institute of Technology
DownloadFull printable version (8.298Mb)
Other Contributors
Massachusetts Institute of Technology. Dept. of Mathematics.
Advisor
Alan Edelman.
Terms of use
Metadata
Show full item recordAbstract
We present two recent parallel programming languages, PetaBricks and Julia, and demonstrate how we can use these two languages to re-examine classic numerical algorithms in new approaches for high-performance computing. PetaBricks is an implicitly parallel language that allows programmers to naturally express algorithmic choice explicitly at the language level. The PetaBricks compiler and autotuner is not only able to compose a complex program using fine-grained algorithmic choices but also find the right choice for many other parameters including data distribution, parallelization and blocking. We re-examine classic numerical algorithms with PetaBricks, and show that the PetaBricks autotuner produces nontrivial optimal algorithms that are difficult to reproduce otherwise. We also introduce the notion of variable accuracy algorithms, in which accuracy measures and requirements are supplied by the programmer and incorporated by the PetaBricks compiler and autotuner in the search of optimal algorithms. We demonstrate the accuracy/performance trade-offs by benchmark problems, and show how nontrivial algorithmic choice can change with different user accuracy requirements. Julia is a new high-level programming language that aims at achieving performance comparable to traditional compiled languages, while remaining easy to program and offering flexible parallelism without extensive effort. We describe a problem in large-scale terrain data analysis which motivates the use of Julia. We perform classical filtering techniques to study the terrain profiles and propose a measure based on Singular Value Decomposition (SVD) to quantify terrain surface roughness. We then give a brief tutorial of Julia and present results of our serial blocked SVD algorithm implementation in Julia. We also describe the parallel implementation of our SVD algorithm and discuss how flexible parallelism can be further explored using Julia.
Description
Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Mathematics, 2011. Cataloged from PDF version of thesis. Includes bibliographical references (p. 163-170).
Date issued
2011Department
Massachusetts Institute of Technology. Department of MathematicsPublisher
Massachusetts Institute of Technology
Keywords
Mathematics.