Definition
Charm++ is a C++-based parallel programming system that implements a message-driven migratable objects programming model, supported by an adaptive runtime system.
Discussion
Charm++ [1] is a parallel programming system developed at the University of Illinois at Urbana-Champaign. It is based on a message-driven migratable objects programming model, and consists of a C++-based parallel notation, an adaptive runtime system (RTS) that automates resource management, a collection of debugging and performance analysis tools, and an associated family of higher level languages. It has been used to program several highly scalable parallel applications.
Motivation and Design Philosophy
One of the main motivations behind Charm++ is the desire to create an optimal division of labor between the programmer and the system: that is, to design a programming system so that the programmers do what they can do best, while leaving to the “system” what it can automate best. It was observed that...
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Bibliography
Kale LV, Krishnan S (1993) CHARM + + : a portable concurrent object oriented system based on C + +. In: Paepcke A (ed) Proceedings of OOPSLA’93, ACM, New York, September 1993, pp 91–108
Shu WW, Kale LV (1990) Chare Kernel – a runtime support system for parallel computations. J Parallel Distrib Comput 11:198–211
Kale LV (1987) Parallel execution of logic programs: the REDUCE-OR process model. In: Proceedings of the fourth international conference on logic programming, Melbourne, May 1987, pp 616–632
Kale LV, Ramkumar B, Saletore V, Sinha AB (1993) Prioritization in parallel symbolic computing. In: Ito T, Halstead R (eds) Lecture notes in computer science, vol 748. Springer, pp 12–41
Lin Y‐J, Kumar V (1991) And-parallel execution of logic programs on a sharedmemory multiprocessor. J Logic Program 10(1/2/3&4):155–178
Frigo M, Leiserson CE, Randall KH (1998) The implementation of the Cilk-5 multithreaded language. In: ACM SIGPLAN ’98 conference on programming language design and implementation (PLDI), Montreal, June 1998. vol 33 of ACM Sigplan Notices, pp 212–223
Agha G (1986) Actors: a model of concurrent computation in distributed systems. MIT, Cambridge
Yonezawa A, Briot J‐P, Shibayama E (1986) Object-oriented concurrent programming in ABCL/1. ACM SIGPLAN Notices, Proceedings OOPSLA ’86, Nov 1986, 21(11):258–268
Kale LV, Shu W (1989) The Chare Kernel base language: preliminary performance results. In: Proceedings of the 1989 international conference on parallel processing, St. Charles, August 1989, pp 118–121
Kale LV (1990) The Chare Kernel parallel programming language and system. In: Proceedings of the international conference on parallel processing, August 1990, vol II, pp 17–25
Kale LV, Krishnan S (1996) Charm + + : parallel programming with message-driven objects. In: Wilson GV, Lu P (eds) Parallel programming using C + +. MIT, Cambridge, pp 175–213
Gursoy A, Kale LV (2003) Performance and modularity benefits of message-driven execution. J Parallel Distrib Comput 64:461–480
Lawlor OS, Kale LV (2003) Supporting dynamic parallel object arrays. Concurr Comput Pract Exp 15:371–393
Brunner RK, Kale LV (2000) Handling application-induced load imbalance using parallel objects. In: Parallel and distributed computing for symbolic and irregular applications. World Scientific, Singapore, pp 167–181
Kale Lv, Zheng G (2009) Charm + + and AMPI: adaptive runtime strategies via migratable objects. In: Parashar M (ed) Advanced computational infrastructures for parallel and distributed applications. Wiley-Interscience, Hoboken, pp 265–282
Kale LV, Bohm E, Mendes CL, Wilmarth T, Zheng G (2008) Programming petascale applications with Charm + + and AMPI. In: Bader B (ed) Petascale computing: algorithms and applications. Chapman & Hall, CRC, Boca Raton, pp 421–441
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer Science+Business Media, LLC
About this entry
Cite this entry
Kalé, L.V. (2011). Charm++. In: Padua, D. (eds) Encyclopedia of Parallel Computing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09766-4_242
Download citation
DOI: https://doi.org/10.1007/978-0-387-09766-4_242
Publisher Name: Springer, Boston, MA
Print ISBN: 978-0-387-09765-7
Online ISBN: 978-0-387-09766-4
eBook Packages: Computer ScienceReference Module Computer Science and Engineering