Several new runtime optimizations become feasible with Charisma interface model because the composition and connectivity information is explicitly available to the runtime system. In the future, we plan to study and evaluate such optimizations. A few of them are illustrated here.
Consider an example in molecular dynamics (section 2.6), where each pair of patches has a compute object associated with it, which is responsible for computing pairwise cutoff-based interactions among atoms in those patches. If the patch neighborhood information is specified using our interface model (by constructing a 3-D grid of patches with the interface language), these patches could be placed automatically by the runtime system on the available set of processors by taking locality of communication into account. Further, specification of connections between patches and compute object would allow the runtime system to place the compute objects closer to the patches they connect. This, combined with the information about communication volume available from the Converse load balancing framework, would allow the runtime system to place a compute object on the same processor as the patch that sends more atoms to it. We propose to provide such runtime optimization techniques by incorporating the connectivity information in the Converse load balancing framework.
Connection specification also enables the runtime system to optimize data exchange between components that belong to the same address space. This can be achieved by allowing the components to publish their internal data buffers to the output ports. In the normal course, the published data will be sent as a message directed at the input port of the connected component. If the connected component belongs to the same address space, the runtime system may pass the same buffer to the input port of the connected component in the same process, when the corresponding input port declares itself to be readonly.