715 0743-7315/02 $35.00 © 2002 Elsevier Science (USA) All rights reserved. Journal of Parallel and Distributed Computing 62, 715–740 (2002) doi:10.1006/jpdc.2001.1814, available online at http://www.idealibrary.comon A Border-based Coordination Language for Integrating Task and Data Parallelism 1 1 This work was supported by the Spanish project CICYT TIC-99-0754-C03-03. Manuel Díaz, Bartolomé Rubio, Enrique Soler, and José M. Troya Departamento Lenguajes y Ciencias de la Computación, Málaga University, 29071 Málaga, Spain E-mail: mdr@lcc.uma.es, tolo@lcc.uma.es, esc@lcc.uma.es, troya@lcc.uma.es Received February 9, 2001; revised October 15, 2001; accepted November 19, 2001 This paper presents BCL, a border-based coordination language focused on the solution of numerical applications. Our approach provides a simple parallelism model. 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. Data distribution belonging to the differ- ent HPF tasks is known at the coordination level. This is the key for an effi- cient implementation of the communication among them. Besides that, our system implementation requires no change to the runtime support of the underlying HPF compiler. By means of some examples, the suitability and expressiveness of the language are shown. Some experimental results also demonstrate the efficiency of the model. © 2002 Elsevier Science (USA) Key Words: coordination languages; high performance computing; numer- ical problems; task and data parallelism. 1. INTRODUCTION High Performance Fortran (HPF) [13] has emerged as a standard data parallel, high level programming language for parallel computing. However, a disadvantage of using a parallel language such as HPF is that the user is constrained by the model of parallelism supported by the language. It is widely accepted that many important parallel applications cannot be efficiently implemented following a pure data-parallel paradigm: pipelines of data parallel tasks [9], a common computation structure in image processing, signal processing, or computer vision; irregular applications [6]; multidisciplinary optimization problems like aircraft design [5], etc. For these applications, rather than having a single data-parallel program, it is