TY - GEN
T1 - Relaxing synchronization constraints in behavioral programs
AU - Harel, David
AU - Kantor, Amir
AU - Katz, Guy
PY - 2013
Y1 - 2013
N2 - In behavioral programming, a program consists of separate modules called behavior threads, each representing a part of the system's allowed, necessary or forbidden behavior. An execution of the program is a series of synchronizations between these threads, where at each synchronization point an event is selected to be carried out. As a result, the execution speed is dictated by the slowest thread. We propose an eager execution mechanism for such programs, which builds upon the realization that it is often possible to predict the outcome of a synchronization point even without waiting for slower threads to synchronize. This allows faster threads to continue running uninterrupted, whereas slower ones catch up at a later time. Consequently, eager execution brings about increased system performance, better support for the modular design of programs, and the ability to distribute programs across several machines. It also allows to apply behavioral programming to a variety of problems that were previously outside its scope. We illustrate the method by concrete examples, implemented in a behavioral programming framework in C++.
AB - In behavioral programming, a program consists of separate modules called behavior threads, each representing a part of the system's allowed, necessary or forbidden behavior. An execution of the program is a series of synchronizations between these threads, where at each synchronization point an event is selected to be carried out. As a result, the execution speed is dictated by the slowest thread. We propose an eager execution mechanism for such programs, which builds upon the realization that it is often possible to predict the outcome of a synchronization point even without waiting for slower threads to synchronize. This allows faster threads to continue running uninterrupted, whereas slower ones catch up at a later time. Consequently, eager execution brings about increased system performance, better support for the modular design of programs, and the ability to distribute programs across several machines. It also allows to apply behavioral programming to a variety of problems that were previously outside its scope. We illustrate the method by concrete examples, implemented in a behavioral programming framework in C++.
KW - Behavioral programming
KW - Distributed design
KW - Eager execution
KW - Modular design
KW - Synchronization
UR - http://www.scopus.com/inward/record.url?scp=84893951463&partnerID=8YFLogxK
U2 - 10.1007/978-3-642-45221-5_25
DO - 10.1007/978-3-642-45221-5_25
M3 - ???researchoutput.researchoutputtypes.contributiontobookanthology.conference???
AN - SCOPUS:84893951463
SN - 9783642452208
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 355
EP - 372
BT - Logic for Programming, Artificial Intelligence, and Reasoning - 19th International Conference, LPAR 2013, Proceedings
T2 - 19th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning, LPAR 2013
Y2 - 14 December 2013 through 19 December 2013
ER -