Systematic parallelization of sequential programs remains a major challenge in parallel computing. Traditional approaches using program schemes tend to be narrower in scope, as the properties which enable parallelism are difficult to capture via ad-hoc schemes. In [CTH98], a systematic approach to parallelization based on the notion of preserving the context of recursive sub-terms has been proposed. This approach can be used to derive a class of divide-and-conquer algorithms. In this paper, we enhance the methodology by using invariants to guide the parallelization process. The enhancement enables the parallelization of a class of recursive functions with conditional and tupled constructs, which were not possible previously. We further show how such invariants can be discovered and verified systematically, and demonstrate the power of our methodology by deriving a parallel code for maximum segment product. To the best of our knowledge, this is the first systematic parallelization for the maximum segment product problem. © Springer-Verlag Berlin Heidelberg 2000.
CITATION STYLE
Chin, W. N., Khoo, S. C., Hu, Z., & Takeichi, M. (2000). Deriving parallel codes via invariants. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 1824 LNCS, pp. 75–94). Springer Verlag. https://doi.org/10.1007/978-3-540-45099-3_5
Mendeley helps you to discover research relevant for your work.