Integration of Task and Data Parallelism: A Coordination-Based Approach

This paper shows a new way of integrating task and data parallelism by means of a coordination language. Coordination and computational aspects are clearly separated. The former are established using the coordination language and the latter are coded using HPF (together with only a few extensions related to coordination). This way, we have a coordinator process that is in charge of both creating the different HPF tasks and establishing the communication and synchronization scheme among them. In the coordination part, processor and data layouts are also specified. The knowledge of data distribution belonging to the different HPF tasks at the coordination level is the key for an efficient implementation of the communication among them. Besides that, our system implementation requires no change to the runtime system support of the HPF compiler used. We also present some experimental results that show the efficiency of the model.