Jade: Compiler-Supported Multi-Paradigm Processor Virtualization-Based Parallel Programming
Thesis 2004
Publication Type: PhD Thesis
Repository URL:
Current parallel programming approaches, which typically use message-passing and sharedmemory threads, require the programmer to write considerable low-level work management and distribution code to partition and distribute data, perform load distribution and balancing, pack and unpack data into messages, and so on. One solution to this low level of programming is to use processor virtualization, wherein the programmer assumes a large number of available virtual processors and creates a large number of work objects, combined with an adaptive runtime system (ARTS) that intelligently maps work to processors and performs dynamic load balancing to optimize performance. Charm++ and AMPI are implementations of this approach. Although Charm++ and AMPI enable the use of an ARTS, the program specification is still low-level, requiring many details. Furthermore, the only mechanisms for information exchange are asynchronous method invocation and message passing, although some applications are more easily expressed in a shared memory paradigm.

We explore the thesis that compiler support and optimizations, and a disciplined shared memory abstraction can substantially improve programmer productivity while retaining most of the performance benefits of processor virtualization and the ARTS.

The ideas proposed in this thesis are embodied in a new programming language, Jade, based on Java, Charm++ and AMPI. The language design uses the Java memory model, automating memory management and eliminating void pointers and pointer arithmetic. In addition, by automating various routine tasks in Charm++, programmer productivity is substantially improved. Jade introduces Multiphase Shared Arrays (MSA), which can be shared in read-only, write-many, and accumulate modes. These simple modes scale well and are general enough to capture the majority of shared memory access patterns.

We present novel uses of known compilation techniques, as well as new compile-time analyses suggested by the needs of ARTS. One optimization strip-mines MSA loops and optimizes away a test that checks if a page is present in the local MSA cache, resulting in single-cpu MSA performance matching that of a sequential program. Another optimization generates guarded pack/unpack code that only packs live data. This significantly reduces the time taken and disk size needed to checkpoint (or migrate objects within) large applications.

The Jade language and compiler system described in this thesis can serve as the framework for further research into compiler-based multi-paradigm ARTS-supported parallel programming built upon processor virtualization.

DeSouza, Jayant, "Jade: Compiler-Supported Multi-Paradigm Processor Virtualization-Based Parallel Programming", Ph.D. Thesis, Department of Computer Science, University of Illinois at Urbana-Champaign, 2004.
Research Areas