Research objectives and content
This research proposal aims at the development of techniques and of a prototype tool for automatic recognition of algorithmic concepts within source code, and their integration within parallel compiler technology, in order to overcome some of its limitations.The tasks to which algorithmic concepts recognition is applicable include (1) automatic data distribution, (2) code restructuring and optimization, (3) the replacement of code implementing recognized functionalities by optimized sequential libraries such as Blas and Linpack, and (4) parallel code generation - through code replacement with parallel library calls and high-level MPI primitives.
Finally, recognition of high level algorithms can drive the automatic selection of the execution model that is more suited to the algorithm, to the target architecture and to the run-time parameters. This can enable much more flexible approaches to program parallelization than those provided by the SPMD paradigm.
The prototype tool will be integrated within the Vienna Fortran Compilation System, as a parallelization support tool. The input code will be Fortran (F77 and F90), and the Recognition of algorithmic concept instances within it will be performed without any supervision from the user. Result of the recognition, that is the set of recognized parallelizable algorithmic pattern instances and their characterizing attributes, will be presented to the user, by means of a suitable graphical user interface.
Training content (objective, benefit and expected impact)
The training phase will focus on the state of the art parallel compiler technology, and on manual parallelization strategies, aiming at identifying suitable parallelizable algorithmic patterns, and associating these patterns with a corresponding set of heuristics; these will drive, automatically or interactively, the parallelization of the code portions implementing those patterns.
Links with industry / industrial relevance (22)
The research group of the host institution has several ongoing industrial collaborations in the area of new language and compiler technology features for High Performance Computing, including participation in Esprit Projects HPF+ (IV LTR - coordinator), PPPE (III - partner) and PREPARE (III - associated partner)