Title :
The Diadora principle: efficient execution of concurrent logic and related languages
Author :
Massey, Bart ; Tick, Evan
Author_Institution :
Dept. of Comput. Sci., Oregon Univ., Eugene, OR, USA
Abstract :
Compile-time partitioning of fine-grained concurrent languages is difficult, because it must be both powerful enough to greatly increase the grain size and safe from introducing errors, particularly cycles (data dependencies that circularly link tasks). Incorrect assignment of a cycle into a single thread can result in deadlock, but perfectly safe data dependency analysis is especially difficult for concurrent logic programming languages (CLPs) because of the prevalence of logic variables, which can cause hidden cycles through aliasing, and because efficiency requires that many tasks be placed in the same thread. This paper describes the Diadora computation model, developed to partition CLPs by instituting deadlock breaking if an inadvertent cycle has been sequentialized, and task stealing for runtime load balancing, thus exploiting the synergy between simple static analysis and a simple runtime system. The Diadora model is a form of lazy task creation a la Mohr, Kranz and Halstead (1991). However, it is customized for CLPs and the somewhat different problems and features of these languages.<>
Keywords :
logic programming languages; parallel languages; program compilers; system monitoring; Diadora principle; aliasing; compile-time partitioning; concurrent logic; concurrent logic programming languages; data dependencies; data dependency analysis; deadlock; fine-grained concurrent languages; lazy task creation; runtime load balancing; static analysis;
Conference_Titel :
System Sciences, 1994. Proceedings of the Twenty-Seventh Hawaii International Conference on
Conference_Location :
Wailea, HI, USA
Print_ISBN :
0-8186-5090-7
DOI :
10.1109/HICSS.1994.323244