Computer Science Department
School of Computer Science, Carnegie Mellon University


Coordinating Foreign Modules with a Parallelizing Compiler

Peter Steenkiste, Jaspal Subhlok

June 1997

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

Return to: SCS Technical Report Collection
School of Computer Science homepage

This page maintained by