In diesem Buch wird der Entwurf und die Implementation eines Ansatzes zum Prototyping paralleler Algorithmen in der mengenorientierten Sprache ProSet präsentiert. Für eine Prototyping-Sprache ist es notwendig, zum Prototyping paralleler Algorithmen einfache, aber mächtige Konstrukte zur dynamischen Prozesskreation und zur Koordination paralleler Prozesse zur Verfügung zustellen.
This book presents the design and implementation of an approach to prototyping parallel algorithms with the set-oriented language ProSet. To support prototyping of parallel algorithms, a prototyping language must provide simple, but powerful means for dynamic creation and coordination of parallel processes.
Parallel programming is conceptually harder to undertake and to understand than sequential programming, because a programmer often has to focus on more than one process at a time. Furthermore, on most of today's parallel machines, programmers are forced to program at a low level to obtain performance - ease of use is sacrificed for efficiency. Consequently, developing parallel algorithms is in general considered as an awkward undertaking.
The goal of the presented approach is to overcome this nuisance by providing a tool for prototyping parallel algorithms. In ProSet, the concept for process creation via Multilisp's futures is adapted to set- oriented programming and combined with Linda's concept for synchronization and communication via tuple space. Linda is a coordination language which provides means for synchronization and communication through so-called tuple spaces. These tuple spaces are virtual shared data spaces.
Synchronization and communication in ProSet-Linda are carried out through addition, removal, reading, and atomic updates of individual tuples in tuplespace. The presented approach to designing and implementing ProSet-Linda relies on the use of the formal specification language Object-Z and the prototyping language ProSet itself.