Charm++, Offload API, and the Cell Processor
Authors:
David Kunzman, Gengbin Zheng, Eric Bohm, Laxmikant V. Kale
Parallel Programming Laboratory, Department of Computer Science, University
of Illinois at Urbana-Champaign
In PMUP Workshop at PACT'06, September 2006.
As multicore processor designs become more mainstream, it becomes more important to both expose and efficiently exploit parallelism in a clear and straight forward manner. We believe that the Charm++ paradigm is a good fit for the Cell processor (a heterogeneous multicore processor). Many aspects of the Charm++ runtime system allow it to take advantage of the benefits provided by the Cell processor in a clear and natural manner. These aspects include being able to peek ahead in the message queue, effective prefetching of data, virtualization, encapsulation of data, etc. In adapting the Charm++ runtime system to be able to use the Cell processor, we have developed the Offload API. The Offload API is a general purpose API, which can be used independently of Charm++, that allows a program to easily take advantage of the Cell's potential. Additionally, Charm++ applications are portable between many existing platforms in common use today. By adapting the Charm++ runtime system to utilize the Cell processor without modification to the user's application code, Cell programs written using Charm++ will automatically be portable to Cell-based platforms. Finally, we will discuss some initial efforts in porting the popular molecular dynamics program NAMD to the Cell processor.