PAR Considered Harmful

Luc Bouge

Evolution of computer languages is dominated by the quest of abstraction. The programming models develop independently of the execution models, and compiler technology becomes a central concern. A typical example of this continuous trend is the advent of ``structured programming'' in the 70's and Dijkstra's claim ``GOTO Considered Harmful''.

We claim that parallel programming languages are now developing along the same lines. The advent of data-parallel programming in the 90's introduces structure and abstraction. A parallel composition of sequential processes (PAR/SEQ) is recast into a sequential composition of actions on parallel objects (SEQ/PAR).

The price to pay for this is a possible loss in expressivity and performances. We believe this will be outweighted by major gains:

The next step is probably to go from flat parallel objects (arrays) to structured ones (lists, trees, etc.).

@INPROCEEDINGS{Bou96ParaDigme,
        AUTHOR             = {L. Bougé},
        BOOKTITLE          = {The Data-Parallel Programming Model},
        EDITOR             = {A. Darte and G.-R. Perrin},
        MONTH              = jun,
        NOTE               = {Invited Conference.},
        PAGES              = {4-26},
        PUBLISHER          = {Springer Verlag},
        SERIES             = {LNCS Tutorial},
        TITLE              = {The Data-Parallel Programming Model: A Semantic Perspective},
        VOLUME             = {1132},
        YEAR               = {1996},
	URL                = {ftp://ftp.ens-lyon.fr/pub/LIP/Rapports/RR/RR96/RR96-27.ps.Z}
}

@INPROCEEDINGS{BouCacLeGUtaVir96,
        AUTHOR             = {L. Bougé and D. Cachera and Y. {Le~Guyadec} and G. Utard and B. Virot},
        BOOKTITLE          = {The Data-Parallel Programming Model},
        EDITOR             = {A. Darte and G.-R. Perrin},
        MONTH              = jun,
        NOTE               = {Invited conference.},
        PAGES              = {252-281},
        SERIES             = {LNCS Tutorial},
        TITLE              = {Formal Validation of Data-Parallel Programs: A Two-Component Assertional Proof System for a Simple Language},
        VOLUME             = {1132},
        YEAR               = {1996},
	URL                = {ftp://ftp.ens-lyon.fr/pub/LIP/Rapports/RR/RR96/RR96-29.ps.Z}
}