This preview shows pages 1–2. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: Charm++, Offload API, and the Cell Processor David Kunzman, Gengbin Zheng, Eric Bohm, Laxmikant V. Kale Parallel Programming Lab University of Illinois at Urbana-Champaign 201 N. Goodwin Ave. Urbana, IL 61801 kunzman2,gzheng,ebohm,email@example.com ABSTRACT 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 ad- vantage 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 indepen- dently 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 plat- forms. Finally, we will discuss some initial efforts in porting the popular molecular dynamics program NAMD to the Cell processor. 1. INTRODUCTION The Cell processor  jointly developed by IBM, Sony, and Toshiba deviates from standard processor design. While it has more computational power than most processors, it also presents many challenges. One of the challenges that it presents is how hard it can be to program in an efficient manner. Efficiently programming for the Cell processor re- quires the programmer to explicitly manage the resources available to each of the SPEs (see The Cell Processor section below). This, of course, also greatly hinders the portability of code when moving between a Cell-based platform and a non-Cell-based platform. Charm++  can provide portability to the Cell. Charm++ applications can already be ported across platforms com- prised of many different combinations of processors and in- terconnects by simply recompiling the code without mod- ification. In practice, Charm++ applications mainly fall within the realm of High Performance Computing (HPC). We are currently in the process of applying some of the ab- stractions and techniques we have developed to Cell-based platforms. In the course of this process, we have devel- oped the Offload API . The Offload API is independent of Charm++ and allows C/C++ based programs to more eas- ily utilize the SPEs on a Cell....
View Full Document
This note was uploaded on 10/27/2009 for the course CSE 212 taught by Professor Smith during the Spring '09 term at École Normale Supérieure.
- Spring '09