Login

High-performance computing with PetaBricks and Julia

Show full item record




Title: High-performance computing with PetaBricks and Julia
Author: Wong, Yee Lok, Ph. D. Massachusetts Institute of Technology
Other Contributors: Massachusetts Institute of Technology. Dept. of Mathematics.
Advisor: Alan Edelman.
Department: Massachusetts Institute of Technology. Dept. of Mathematics.
Publisher: Massachusetts Institute of Technology
Issue Date: 2011
Abstract: 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).
URI: http://hdl.handle.net/1721.1/67818
Keywords: Mathematics.

Files in this item

Files Size Format View Description
Preview, non-printable (open to all) 8.701Mb PDF View/Open Preview, non-printable (open to all)
Full printable version (MIT only) 8.701Mb PDF View/Open Full printable version (MIT only)

This item appears in the following Collection(s)

Show full item record

Search DSpace@MIT


Advanced Search

Browse

My Account

Links