A class-based approach to parallelization of legacy codes
Computation-intensive legacy codes for numerical models stand to benefit from application of parallel computing. However, parallelization of legacy codes poses special challenges. These codes are very large and complex. Manual parallelization has proven to be extremely time-consuming and error-prone. Furthermore, while a large number of parallelization tools exist, they cannot handle these complex legacy codes. Development of automatic parallelization tools for legacy codes remains a research area of considerable interest;This thesis describes a new approach to automatic parallelization of legacy codes. Our approach focuses on special classes of codes as opposed to parallelization of arbitrary codes. The advantage is that we are able to use high-level knowledge of the special class to manage the complexity of the parallelization problem. This approach provides a pragmatic solution for parallelization: it requires the user to specify the high-level knowledge, but automates tasks which are time-consuming, tedious, and error-prone for the user;Using this new approach, we have developed parAgent--a parallelizing tool which facilitates quick development of efficient parallel codes for legacy Fortran-77 codes based on the explicit time-marching finite difference model. parAgent has been used on several well-known and widely-used Mesoscale Meteorological codes. It took only a few weeks to parallelize each of these legacy codes. Qualitatively, the performance of parallelization have been found to be on par with manual parallelization;This new approach can be applied to a variety of problem domains. The key benefits are: substantial reuse of existing software and considerable saving of time and effort for developing efficient parallel code. Although the new approach and parAgent have been developed with parallelization as the main objective, the information provided by the tool can be used for various purposes. For example, the information about the underlying numerical method and the exchange of data is valuable to the application scientist.