Language support for synchronous parallel critical sections

We introduce a new parallel programming paradigm, namely synchronous parallel critical sections. Such parallel critical sections must be seen in the context of switching between synchronous and asynchronous modes of computation. Thread farming allows to generate bunches of threads to solve independent subproblems asynchronously and in parallel. Opposed to that, synchronous parallel critical sections allow to organize bunches of asynchronous parallel threads to execute certain task jointly and synchronously. We show how the PRAM language Fork95 can be extended by a construct join supporting parallel critical sections. We explain its semantics and implementation, and discuss possible applications.

[1]  Helmut Seidl,et al.  FORK: A high-level language for PRAMs , 1992, Future Gener. Comput. Syst..

[2]  Wolfgang J. Paul,et al.  On the cost–effectiveness of PRAMs , 1991, Proceedings of the Third IEEE Symposium on Parallel and Distributed Processing.

[3]  Barbara M. Chapman,et al.  A Software Architecture for Multidisciplinary Applications: Integrating Task and Data Parallelism , 1994, CONPAR.

[4]  Christoph W. Kessler,et al.  A library of basic PRAM algorithms and its implementation in FORK , 1996, SPAA '96.

[5]  Helmut Seidl,et al.  Fork95 Language and Compiler for the SB-PRAM , 1995 .

[6]  Wolfgang J. Paul,et al.  On the Physical Design of PRAMs , 1992, Comput. J..

[7]  Christoph W. Kessler,et al.  Integrating synchronous and asynchronous paradigms: the Fork95 parallel programming language , 1995, Programming Models for Massively Parallel Computers.

[8]  Kasyap Natarajan,et al.  Parallel versus Sequential Task-Processing: A New Performance Model in Discrete Time , 1996, Universität Trier, Mathematik/Informatik, Forschungsbericht.

[9]  Jerome A. Feldman,et al.  Programming Distributed Systems , 1978, ACM Annual Conference.