In this paper we present a case study of implementing an Adaptive Mesh Refinement algorithm in Titanium, a partitioned global address space language based on Java. We extend prior work by focusing on the problem of scalable parallelism and demonstrate the use of language, compiler, runtime and application level support to address problems of load balancing, parallelism, and communication optimizations. We demonstrate that, while the Titanium code is an order of magnitude more compact than an equivalent program written in C++ and Fortran with MPI, the Titanium implementation has comparable seriable performance and scalability. The Titanium code uses one-sided array copy operations which are transformed by the compiler to perform automatic packing using an SMP-aware communication model suitable for hybrid shared and distributed memory machines.
Title
Compiler and Runtime Support for Scaling Adaptive Mesh Refinement Computations in Titanium
Published
2006-06-13
Full Collection Name
Electrical Engineering & Computer Sciences Technical Reports
Other Identifiers
EECS-2006-87
Type
Text
Extent
16 p
Archive
The Engineering Library
Usage Statement
Researchers may make free and open use of the UC Berkeley Library’s digitized public domain materials. However, some materials in our online collections may be protected by U.S. copyright law (Title 17, U.S.C.). Use or reproduction of materials protected by copyright beyond that allowed by fair use (Title 17, U.S.C. § 107) requires permission from the copyright owners. The use or reproduction of some materials may also be restricted by terms of University of California gift or purchase agreements, privacy and publicity rights, or trademark law. Responsibility for determining rights status and permissibility of any use or reproduction rests exclusively with the researcher. To learn more or make inquiries, please see our permissions policies (https://www.lib.berkeley.edu/about/permissions-policies).