Live Webcast 15th Annual Charm++ Workshop


PPL/Charm++ at SC17

An Efficient Implementation of Charm++ on Virtual Machine Interface
Thesis 2003
Publication Type: MS Thesis
Repository URL:
Charm++ is a message-driven parallel programming language designed with the goal of enhancing programmer productivity by providing a high-level abstraction of a parallel computation while at the same time providing good performance on platforms ranging from traditional supercomputers to more recent commodity cluster environments. Charm++ is based on the C++ programming language and is backed by an adaptive runtime system that provides features such as processor virtualization, load balancing, and communication optimizations. Programs written in Charm++ consist of parallel objects called chares that communicate with each other through asynchronous message passing. When a chare receives a message, the message triggers a corresponding method within the chare object to handle the message asynchronously. Charm++ is implemented on top of a software layer called Converse which supports portability across multiple platforms and, in particular, provides interprocess communication.

Virtual Machine Interface (VMI) is a high-bandwidth low-latency communication layer designed with the primary goal of providing a single programming interface to the various system area networks commonly used in modern commodity clusters. VMI is generally not intended for direct use by application developers but rather to provide a low-overhead communication layer to developers of higher level programming languages and message passing libraries. A language or library implemented on VMI immediately gains access to all of the network interconnects supported by VMI while paying a small overhead of only a few microseconds per message. Furthermore, the language or library can take advantage of other VMI features such as the ability to stripe data across multiple network interfaces, automatic fail-over from one network transport to another, access to communication transports for distributed grid-based computing, and the ability to monitor and dynamically tune the communication layer.

This thesis describes an efficient implementation of Charm++ on Virtual Machine Interface and discusses the various design trade-offs involved. Performance of the implementation is evaluated for latency and bandwidth and compared to the performance of Charm++ implementations running on other communication layers.
Gregory Allen Koenig, "An Efficient Implementation of Charm++ on Virtual Machine Interface," Master's Thesis, Department of Computer Science, University of Illinois at Urbana-Champaign, 2003.
Research Areas