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