Parallel programming with guarded objects
Babak Bagheri · 1995
This dissertation presents the semantics and pragmatics of a quasi-explicit model of parallel computation called $\IP .$ In $\IP ,$ the expression of parallelism itself is explicit, but the expression of coordination--namely, synchronization and communication--is implicit. The $\IP$ rules for implicit coordination are encapsulated in a model of memory called guarded memory. Parallel programming with guarded memory avoids the two main difficulties of traditional explicitly parallel programming models, namely nondeterminism and deadlock. In the $\IP$ model, it is in fact impossible to express parallel algorithms which may lead to nondeterministic behavior. At the same time, computations which may lead to deadlock can be easily identified. The dissertation includes formal semantics of a simple sequential language extended to include the $\IP$ model, proof of determinism, and characterization of deadlock. The dissertation also includes descriptions of three languages, $\IP\rm C,$ $\IP\rm fortran,$ and $\IP$C++, which use the $\IP$ model together with a general approach to code motion which can be used to optimize communication and synchronization in these languages.