Basic results in automatic transformations of shared memory parallel programs into sequential programs

Yosi Ben-Asher, Esti Stein

Research output: Contribution to journalArticlepeer-review

Abstract

We study the problem of developing a set of syntax-driven transformations for automatic translation of shared memory parallel programs into sequential programs. The result is a sequential program that is semantically equivalent to the original program. Consequently, the problem of debugging parallel programs is reduced to the problem of debugging sequential programs. Moreover, the efficiency of parallel programs can be increased by sequentializing code segments that include extra parallelism. The main difficulty in developing such a system is to preserve the fairness property of any actual parallel execution, which states that no process can wait forever unserved. Thus, no termination of the sequential version (namely an infinite loop) is allowed only if there is at least one fair parallel execution that does not halt as well (i.e., a process that executes an infinite loop whose termination is not dependent on any other process). We show that it is sufficient to consider the case of two sequential programs executed in parallel in order to solve the general case. We then describe several types of transformations and check their ability to preserve fairness. The results, with regards to the existence of such a transformation for general parallel programs are not conclusive; however, we do show that restricted cases (which are likely to appear in the reality) can be sequentialized using this set of transformations.

Original languageEnglish
Pages (from-to)143-165
Number of pages23
JournalJournal of Supercomputing
Volume17
Issue number2
DOIs
StatePublished - Sep 2000

ASJC Scopus subject areas

  • Software
  • Theoretical Computer Science
  • Information Systems
  • Hardware and Architecture

Fingerprint

Dive into the research topics of 'Basic results in automatic transformations of shared memory parallel programs into sequential programs'. Together they form a unique fingerprint.

Cite this