Click to edit Master text styles
I’ll talk about the project of higher
level parallel programming language in our lab.
Charm++/AMPI and the
powerful concept of migratable object has proven itself through various
However, some very complicated parallel programs,
under this framework, suffer from obscure overall flow of control due to the
huge amount of parallel objects and asynchronous method invocation.
solve this problem, we design and develop an orchestration language that allows
the expression of global view of control flow in a parallel program, and a shared
array mechanism to provide a restricted view of global shared data.
•Decomposition done by programmer,
everything else like mapping and scheduling is automated
•Achieve high productivity and performance by
Seeking optimal division of labor
between programmer and the system
•Typically larger than number of processors
•Asynchronous method invocation
•Chares and Charearrays
•In traditional MPI paradigm. The number
of partitions of both modules is typically equal to the number of processor P
•And although the i’th elements of fluid module and solid module are not connected geometrically in the
simulation, they are glued together on the I’th processor.
•Under Charm++/AMPI framework, the two modules each get their own set of
parallel objects. And
the size of the arrays are not restricted or related.
•The benefit of this is performance optimizations and better
•Problem: due to the asynchronous method invocation, the flow of control
is buried deep into the
The overall flow of control is
complicated and concurrent operations among different sets of parallel
It would be ideal to have a higher-level control flow specification
User code doesn’t contain parallel control flow, eg. Physics,
Distinction between this and HPF FORALL
When there’s no need for barrier
Compared to what would it look like in
Integrated with Charm modules and user