Older Projects:
Charisma++ - Orchestrating Parallel Objects
Charisma++ is a prototype language for describing global view of control in a parallel program. It is designed to solve the problem of obscured control flow in the object-based model with Charm++.
Charisma++ employs a macro dataflow approach for productive parallel programming. The programmer write a script-like orchestration program containing statements producing and consuming values, from which the control flows will be organized, and messages and method invocations will be generated. This idea is similar to the hybrid dataflow architecture model. Our object-level macro dataflow mechanism takes advantage of Charm++'s message-driven execution model and enables dynamic resource management such as automatic load balancing.
A Charisma++ program consists of two parts: the orchestration code (in .or file) that describes the global view of control, and the sequential code (in .h and .C files) that specifies the local behavior of individual objects. By separating parallel code from sequential code, the programmer can focus better on the local actions on the objects, such as physics computation.
Active research is being done on the research of clear and efficient expression of global control and the Charisma++ language support.
Please refer to our 2004 paper and presentation on Charisma++ for detailed description. User manual is available as pdf and html.
Charisma++ employs a macro dataflow approach for productive parallel programming. The programmer write a script-like orchestration program containing statements producing and consuming values, from which the control flows will be organized, and messages and method invocations will be generated. This idea is similar to the hybrid dataflow architecture model. Our object-level macro dataflow mechanism takes advantage of Charm++'s message-driven execution model and enables dynamic resource management such as automatic load balancing.
A Charisma++ program consists of two parts: the orchestration code (in .or file) that describes the global view of control, and the sequential code (in .h and .C files) that specifies the local behavior of individual objects. By separating parallel code from sequential code, the programmer can focus better on the local actions on the objects, such as physics computation.
Active research is being done on the research of clear and efficient expression of global control and the Charisma++ language support.
Please refer to our 2004 paper and presentation on Charisma++ for detailed description. User manual is available as pdf and html.
People
Papers/Talks
12-62
2012
[Paper]
[Paper]
Incorporating Dynamic Communication Patterns in a Static Dataflow Notation [DFM 2012]
10-27
2010
[Talk]
[Talk]
Static Macro Data Flow: Compiling Global Control into Local Control [HIPS 2010]
06-18
2007
[Paper]
[Paper]
Charisma: Orchestrating Migratable Parallel Objects [HPDC 2007]
04-13
2004
[Paper]
[Paper]
An Orchestration Language for Parallel Objects [LCR 2004]