Controlling Concurrency and Expressing Synchronization in Charm++ Programs

Charm++ is a parallel programming system that evolved over the past 20 years to become a well-established system for program- ming parallel science and engineering applications, in addition to the combinatorial search applications with which it started. At its earliest point, the precursor to Charm++, the Chare Kernel, was a purely reac- tive specification, similar to most actor languages. This paper describes the evolution of a series of concurrency control mechanisms that have been deployed in Charm++ to tame this unrestricted concurrency in order to improve code clarity and/or to improve performance.

[1]  C. Tomlinson,et al.  Inheritance and Synchronization with Enabled Sets , 1989, OOPSLA.

[2]  Laxmikant V. Kalé,et al.  Scalable Algorithms for Distributed-Memory Adaptive Mesh Refinement , 2012, 2012 IEEE 24th International Symposium on Computer Architecture and High Performance Computing.

[3]  Robert M. Keller,et al.  Rediflow Multiprocessing , 1984, COMPCON.

[4]  Gabriel Antoniu,et al.  An Efficient and Transparent Thread Migration Scheme in the PM2 Runtime System , 1999, IPPS/SPDP Workshops.

[5]  Oscar Nierstrasz,et al.  How could object-oriented concepts and parallelism cohabit? , 1994, Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94).

[6]  Laxmikant V. Kalé,et al.  Hiding Checkpoint Overhead in HPC Applications with a Semi-Blocking Algorithm , 2012, 2012 IEEE International Conference on Cluster Computing.

[7]  Laxmikant V. Kalé,et al.  Performance evaluation of adaptive MPI , 2006, PPoPP '06.

[8]  Laxmikant V. Kalé,et al.  A ‘cool’ load balancer for parallel applications , 2011, 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC).

[9]  Sandia Report,et al.  Improving Performance via Mini-applications , 2009 .

[10]  Laxmikant V. Kalé,et al.  Prioritization in Parallel Symbolic Computing , 1992, Parallel Symbolic Computing.

[11]  Laxmikant V. Kalé,et al.  Mapping Dense LU Factorization on Multicore Supercomputer Nodes , 2012, 2012 IEEE 26th International Parallel and Distributed Processing Symposium.

[12]  Charles L. Seitz,et al.  Multicomputers: message-passing concurrent computers , 1988, Computer.

[13]  Laxmikant V. Kalé,et al.  Massively parallel cosmological simulations with ChaNGa , 2008, 2008 IEEE International Symposium on Parallel and Distributed Processing.

[14]  Gul A. Agha,et al.  Actors: A unifying model for parallel and distributed computing , 1999, J. Syst. Archit..

[15]  B. Ramkumar,et al.  A dynamic and adaptive quiescence detection algorithmAmitabh , 1993 .

[16]  Takayasu Ito,et al.  Parallel Symbolic Computing: Languages, Systems, and Applications , 1992, Lecture Notes in Computer Science.

[17]  Laxmikant V. Kalé,et al.  Supporting dynamic parallel object arrays , 2003, Concurr. Comput. Pract. Exp..

[18]  Ian Glendinning,et al.  Parallel and Distributed Processing , 2001, Digital Image Analysis.

[19]  Laxmikant V. Kalé,et al.  Dagger: combining benefits of synchronous and asynchronous communication styles , 1994, Proceedings of 8th International Parallel Processing Symposium.

[20]  Laxmikant V. Kalé,et al.  Charisma: orchestrating migratable parallel objects , 2007, HPDC '07.

[21]  Satoshi Matsuoka,et al.  An efficient implementation scheme of concurrent object-oriented languages on stock multicomputers , 1992, PPOPP '93.

[22]  Carl Hewitt,et al.  A Universal Modular ACTOR Formalism for Artificial Intelligence , 1973, IJCAI.

[23]  Lukasz Wesolowski,et al.  Charm + + for Productivity and Performance A Submission to the 2011 HPC Class II Challenge , 2011 .

[24]  Madhav V. Marathe,et al.  High-performance biocomputing for simulating the spread of contagion over large contact networks , 2011, ICCABS.

[25]  Laxmikant V. Kalé,et al.  Information sharing mechanisms in parallel programs , 1994, Proceedings of 8th International Parallel Processing Symposium.

[26]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[27]  Laxmikant V. Kalé,et al.  Multiple flows of control in migratable parallel programs , 2006, 2006 International Conference on Parallel Processing Workshops (ICPPW'06).

[28]  Robert H. Halstead,et al.  MULTILISP: a language for concurrent symbolic computation , 1985, TOPL.

[29]  米沢 明憲 ABCL : an object-oriented concurrent system , 1990 .

[30]  Jack Dongarra,et al.  Introduction to the HPCChallenge Benchmark Suite , 2004 .

[31]  Laxmikant V. Kale,et al.  Optimizing Communication for Massively Parallel Processing , 2005 .

[32]  Akinori Yonezawa,et al.  Object-oriented concurrent programming ABCL/1 , 1986, OOPLSA '86.

[33]  Laxmikant V. Kalé,et al.  Structured Dagger: A Coordination Language for Message-Driven Programming , 1996, Euro-Par, Vol. I.

[34]  C. Tomlinson,et al.  Rosette: An object-oriented concurrent systems architecture , 1988, OOPSLA/ECOOP '88.

[35]  Laxmikant V. Kalé,et al.  A scalable double in-memory checkpoint and restart scheme towards exascale , 2012, IEEE/IFIP International Conference on Dependable Systems and Networks Workshops (DSN 2012).

[36]  Laxmikant V. Kalé,et al.  Efficient Parallel Graph Coloring with Prioritization , 1995, PSLS.

[37]  Laxmikant V. Kalé Programming Models at Exascale: Adaptive Runtime Systems, Incomplete Simple Languages, and Interoperability , 2009, Int. J. High Perform. Comput. Appl..

[38]  Michael F. P. O'Boyle,et al.  Compiler Reduction of Invalidation Traffic in Virtual Shared Memory Systems , 1996, Euro-Par, Vol. I.

[39]  Laxmikant V. Kalé,et al.  The Chare-Kernel Base Language: Preliminary Performance Results , 1989, ICPP.

[40]  Laxmikant V. Kalé,et al.  Compiled Execution of the Reduce-OR Process Model on Multiprocessors , 1989, NACLP.

[41]  Laxmikant V. Kalé,et al.  Scalable Molecular Dynamics for Large Biomolecular Systems , 2000, ACM/IEEE SC 2000 Conference (SC'00).

[42]  Laxmikant V. Kalé,et al.  Run-Time Support for Adaptive Load Balancing , 2000, IPDPS Workshops.

[43]  L. V. KaleDepartment Tolerating Latency with Dagger , .

[44]  Takayasu Ito,et al.  Parallel Symbolic Languages and Systems , 1996, Lecture Notes in Computer Science.

[45]  Laxmikant V. Kalé,et al.  The Chare Kernel Parallel Programming Language and System , 1990, ICPP.

[46]  Laxmikant V. Kalé,et al.  Agents: An Undistorted Representation of Problem Structure , 1995, LCPC.