The Diadora principle: efficient execution of concurrent logic and related languages

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...

Full description

Saved in:
Bibliographic Details
Published in:Hawaii International Conference on System Sciences, 27th. Vol. 5: Biotechnology Vol. 2; pp. 396 - 404
Main Authors: Massey, Tick
Format: Conference Proceeding
Language:English
Published: IEEE Comput. Soc. Press 1994
Subjects:
ISBN:0818650907, 9780818650901
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary: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.< >
ISBN:0818650907
9780818650901
DOI:10.1109/HICSS.1994.323244