Charisma: A Component Architecture for Parallel Programming

Building large scale parallel applications mandates composition of independently developed modules that can co-exist and interact efficiently with each other. Several application frameworks have been proposed to alleviate this task. However, integrating components based on these frameworks is difficult and/or inefficient since they are not based on a common component model. In this thesis, we propose a component architecture based on message-driven in-process components. Charisma, our component architecture, has Converse message-driven interoperable runtime system at its core. Converse allows co-existence of in-process components with implicit data-driven control transfers among components. Message-driven objects, based on Charm++, provide encapsulation, and a uniform method of accessing component services. Although, the Charm++ model allows coexistence and composition of independent modules, it is not adequate for independent development of modules. We describe an interface model for Charisma based on the publish-require paradigm. Pure message-driven components lack in expression of control-flow within the components. One way to clarify expression of control flow within a component is by introducing threads. However, overheads associated with threads cause inefficiency. We have developed a notation, Structured Dagger, for building message-driven components that retains the message-driven nature of components efficiently without using threads. Support for legacy codes is vital in the success of any new programming system. We describe how legacy components written using message-passing paradigm could be converted to use Charisma. Our efforts are based on AMPI, our implementation of the MPI library on

[1]  K. Mani Chandy,et al.  CC++: A Declarative Concurrent Object Oriented Programming Notation , 1993 .

[2]  Vineet Singh,et al.  Inheritance and synchronization with enabled-sets , 1989, OOPSLA '89.

[3]  Joshua Yelon Static networks of objects as a tool for parallel programming , 1998 .

[4]  Dale Rogerson,et al.  Inside COM , 1997 .

[5]  Lawrence Rauchwerger,et al.  Polaris: Improving the Effectiveness of Parallelizing Compilers , 1994, LCPC.

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

[7]  D. Quinlan,et al.  Overture: an objectoriented framework for solving partial differential equations on overlapping grids , 1998 .

[8]  Dennis Gannon,et al.  Distributed pC++ Basic Ideas for an Object Parallel Language , 1993, Sci. Program..

[9]  D. Hornungy,et al.  The Use of Object-Oriented Design Patterns in the SAMRAI Structured AMR Framework , 1998 .

[10]  Laxmikant V. Kalé,et al.  Converse: an interoperable framework for parallel programming , 1996, Proceedings of International Conference on Parallel Processing.

[11]  Laxmikant V. Kalé,et al.  NAMD: a Parallel, Object-Oriented Molecular Dynamics Program , 1996, Int. J. High Perform. Comput. Appl..

[12]  Laxmikant V. Kalé,et al.  CHARM++: a portable concurrent object oriented system based on C++ , 1993, OOPSLA '93.

[13]  Alan Pope,et al.  The CORBA reference guide - understanding the common object request broker architecture , 1998 .

[14]  Laxmikant V. Kalé,et al.  A Malleable-Job System for Timeshared Parallel Machines , 2002, 2nd IEEE/ACM International Symposium on Cluster Computing and the Grid (CCGRID'02).

[15]  Vipin Kumar,et al.  Parallel Multilevel k-way Partitioning Scheme for Irregular Graphs , 1996, Proceedings of the 1996 ACM/IEEE Conference on Supercomputing.

[16]  Laxmikant V. Kalé,et al.  Design and Implementation of Parallel Java with Global Object Space , 1997, PDPTA.

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

[18]  Richard Monson-Haefel,et al.  Enterprise JavaBeans , 1999, Java series.

[19]  L.V. Kale,et al.  MICE: a prototype MPI implementation in Converse environment , 1996, Proceedings. Second MPI Developer's Conference.

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

[21]  Laxmikant V. Kalé,et al.  Modularity, Reuse and Efficiency with Message-Driven Libraries , 1995, PPSC.

[22]  Ian Foster,et al.  The Grid 2 - Blueprint for a New Computing Infrastructure, Second Edition , 1998, The Grid 2, 2nd Edition.

[23]  Ken Kennedy,et al.  Computer support for machine-independent parallel programming in Fortran D , 1992 .

[24]  Mitsuhisa Sato,et al.  PM: An Operating System Coordinated High Performance Communication Library , 1997, HPCN Europe.

[25]  Frank Mueller,et al.  A Library Implementation of POSIX Threads under UNIX , 1993, USENIX Winter.

[26]  Laxmikant V. Kalé,et al.  Threads for Interoperable Parallel Programming , 1996, LCPC.

[27]  Wilson C. Hsieh,et al.  Optimistic active messages: a mechanism for scheduling communication with computation , 1995, PPOPP '95.

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

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

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

[31]  Charles L. Seitz,et al.  Myrinet: A Gigabit-per-Second Local Area Network , 1995, IEEE Micro.

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

[33]  Laxmikant V. Kalé,et al.  NAMD: A Case Study in Multilingual Parallel Programming , 1997, LCPC.

[34]  Seth Copen Goldstein,et al.  Active messages: a mechanism for integrating communication and computation , 1998, ISCA '98.

[35]  Laxmikant V. Kalé,et al.  A Parallel Framework for Explicit FEM , 2000, HiPC.

[36]  Dennis Gannon,et al.  Tulip: a portable run-time system for object-parallel systems , 1996, Proceedings of International Conference on Parallel Processing.

[37]  William Gropp,et al.  Infrastructure and Interfaces for Large-Scale Numerical Software , 1999, PDPTA.

[38]  Matthew Haines,et al.  On the design of Chant: a talking threads package , 1994, Proceedings of Supercomputing '94.

[39]  J. S. Peery,et al.  Experiences developing ALEGRA: A C++ coupled physics framework , 1998 .

[40]  Laxmikant V. Kale,et al.  NAMD2: Greater Scalability for Parallel Molecular Dynamics , 1999 .

[41]  Laxmikant V. Kalé,et al.  Multilingual Debugging Support for Data-Driven and Thread-Based Parallel Languages , 1999, LCPC.

[42]  Laxmikant V. Kalé,et al.  An Interface Model for Parallel Components , 2001, LCPC.

[43]  Seth Copen Goldstein,et al.  Active messages: a mechanism for integrating communication and computation , 1998, ISCA '98.

[44]  Vaidy S. Sunderam,et al.  PVM: A Framework for Parallel Distributed Computing , 1990, Concurr. Pract. Exp..

[45]  Keshav Pingali,et al.  Data Movement and Control Substrate for Parallel Scientific Computing , 1997, CANPC.

[46]  Vipin Kumar,et al.  A Fast and High Quality Multilevel Scheme for Partitioning Irregular Graphs , 1998, SIAM J. Sci. Comput..

[47]  Laxmikant V. Kale,et al.  Object-Based Adaptive Load Balancing for MPI Programs∗ , 2000 .

[48]  A. Chien,et al.  High Performance Messaging on Workstations: Illinois Fast Messages (FM) for Myrinet , 1995, Proceedings of the IEEE/ACM SC95 Conference.

[49]  Laxmikant V. Kalé,et al.  Supporting dynamic parallel object arrays , 2001, JGI '01.

[50]  David R. Keppel,et al.  Tools and Techniques for Building Fast Portable Threads Packages , 1993 .

[51]  Attila Gursoy,et al.  Simplified expression of message-driven programs and quantification of their impact on performance , 1994 .

[52]  John A. Board,et al.  A portable distributed implementation of the parallel multipole tree algorithm , 1995, Proceedings of the Fourth IEEE International Symposium on High Performance Distributed Computing.

[53]  Michael T. Heath,et al.  Virtual rocketry: rocket science meets computer science , 1998 .

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

[55]  Ian T. Foster,et al.  Compositional parallel programming languages , 1996, TOPL.

[56]  Ami Marowka,et al.  The GRID: Blueprint for a New Computing Infrastructure , 2000, Parallel Distributed Comput. Pract..

[57]  Scott R. Kohn,et al.  Toward a Common Component Architecture for High-Performance Scientific Computing , 1999, HPDC.

[58]  Amitabh Sinha Performance analysis of object-based and message-driven programs , 1995 .

[59]  Ian T. Foster,et al.  The Nexus Approach to Integrating Multithreading and Communication , 1996, J. Parallel Distributed Comput..

[60]  Ronald F. Belanger MODSIM II-a modular, object-oriented language , 1990, 1990 Winter Simulation Conference Proceedings.