|
CMU-CS-97-145
Computer Science Department
School of Computer Science, Carnegie Mellon University
CMU-CS-97-145
Coordinating Foreign Modules with a Parallelizing Compiler
Peter Steenkiste, Jaspal Subhlok
June 1997
CMU-CS-97-145.ps
Keywords: High performance Fortran, coordination languages, task
parallelism, interdisciplinary applications, application integration
Integrating task and data parallelism in a language framework has
attracted considerable attention. Both the Fx language at Carnegie
Mellon University and the High Performance Fortran standard have
adopted a simple model of task parallelism that allows dynamic
assignment of processor subgroups to tasks in the
application. However, the tasks must be written in the native
language, i.e., Fx or HPF. Large scientific parallel applications often
use a mix of languages for a variety of reasons, including the reuse
of existing code and the suitability of different languages for
different modules. In this paper we demonstrate how a "native"
parallelizing compiler can be used to create parallel applications
that combine native modules with "foreign" modules written in a
different parallel language. We argue that virtually all the
advantages of translating a foreign module to the native language can
be achieved by using the native compiler to coordinate the
interactions with the foreign module. In particular, the ability to
dynamically modify the assignment of processors among native modules
and foreign modules is retained. The foreign module interacts with the
native program through shared arguments and the changes in the code
for the foreign module are minimal. We demonstrate how this idea
allowed us to accelerate the development of the Airshed air quality
model at Carnegie Mellon using the Fx language and parallelizing
compiler. We also examine the tradeoffs between the nature of
interaction permitted with the foreign module and the complexity of
language and runtime support.
15 pages
|