Domain interaction patterns to coordinate HPF tasks q Manuel D ıaz, Bartolome Rubio * , Enrique Soler, Jos e M. Troya Dpto. Lenguajes y Ciencias de la Computacion,Malaga University, 29071 Malaga, Spain Received 1 September 2001; received in revised form 27 August 2002; accepted 10 March 2003 Abstract This paper describes domain interaction patterns, a pattern-based, high level coordination language, which provides a new way of integrating task and data parallelism. Coordination patterns are used to express task parallelism among a collection of data parallel High Perfor- mance Fortran (HPF) tasks. Patterns specify the interaction among domains involved in the application along with the processor and data layouts. The use of domains, i.e. regions to- gether with some interaction information, improves pattern reusability. Data distribution be- longing to the different HPF tasks is known at the coordination level. This is the key for both computational code reutilization and an efficient implementation of the communication among tasks. Besides that, our system implementation requires no change to the runtime sys- tem support of the HPF compiler used. In addition, a set of different implementation tem- plates is provided in order to ease the programmer task. The suitability, expressiveness and efficiency of the language are shown by means of some examples. Ó 2003 Elsevier Science B.V. All rights reserved. Keywords: Coordination patterns; Task and data parallelism integration; Pattern and computational code reusability 1. Introduction There has been a tendency in the parallel programming paradigm to ignore high level issues, particularly in the area of programming model and language design. This may be reasonable since performance is the main purpose of parallel programming. q This work was supported by the Spanish project CICYT TIC-99-1083-C02-01. * Corresponding author. E-mail address: tolo@lcc.uma.es (B. Rubio). 0167-8191/03/$ - see front matter Ó 2003 Elsevier Science B.V. All rights reserved. doi:10.1016/S0167-8191(03)00064-4 www.elsevier.com/locate/parco Parallel Computing 29 (2003) 925–951