AN INTEGRATED RUNTIME AND COMPILE-TIME APPROACH FOR PARALLELIZING STRUCTURED AND BLOCK STRUCTURED APPLICATIONS

Citation
G. Agrawal et al., AN INTEGRATED RUNTIME AND COMPILE-TIME APPROACH FOR PARALLELIZING STRUCTURED AND BLOCK STRUCTURED APPLICATIONS, IEEE transactions on parallel and distributed systems, 6(7), 1995, pp. 747-754
Citations number
26
Categorie Soggetti
System Science","Engineering, Eletrical & Electronic","Computer Science Theory & Methods
ISSN journal
10459219
Volume
6
Issue
7
Year of publication
1995
Pages
747 - 754
Database
ISI
SICI code
1045-9219(1995)6:7<747:AIRACA>2.0.ZU;2-H
Abstract
In compiling applications for distributed memory machines, runtime ana lysis is required when data to be communicated cannot be determined at compile-time. One such class of applications requiring runtime analys is is block structured codes, These codes employ multiple structured m eshes, which may be nested (for multigrid codes) and/or irregularly co upled (called multiblock or irregularly coupled regular mesh problems) . In this paper, we present runtime and compile-time analysis for comp iling such applications on distributed memory parallel machines in an efficient and machine-independent fashion. We have designed and implem ented a runtime library which supports the runtime analysis required. The library is currently implemented on several different systems. We have also developed compiler analysis for determining data access patt erns at compile-time and inserting calls to the appropriate runtime ro utines. Our methods can be used by compilers for HPF-like parallel pro gramming languages in compiling codes in which data distribution, loop bounds and/or strides are unknown at compile-time. To demonstrate the efficacy of our approach, we have implemented our compiler analysis i n the Fortran 90D/HPF compiler developed at Syracuse University, We ha ve experimented with a multiblock Navier-Stokes solver template and a multigrid code. Our experimental results show that our primitives have low runtime communication overheads and the compiler parallelized cod es perform within 20% of the codes parallelized by manually inserting calls to the runtime library.