Semantics and Performance Considerations of Kedama, a GUI-based Massively Parallel Programming Language - Ohshima, Y. (Fourth International Conference on Creating, Connecting and Collaborating through Computing (C5'06), 2006)
Kedama is a GUI-based parallel programming language, in which the user can construct and modify the program dynamically even when the program is running. The dynamic nature of the system and its non-technical target audience require different consideration on its design tradeoffs; such as fast and separate compilation of scripts, and simpler control structures for parallel execution. Based on the design choice, the previous version of the Kedama system had provided a usable system. However, the previous semantics model, called "pure-SIMD", had some flaws; when a conditional statement is used, the semantics of script calling was not consistent. Also, the performance was unnecessarily degraded because of the sequentialized execution. This paper presents a new semantics model called "predicated SIMD" that addresses the problems. In the predicated SIMD model, a parallel element (called "a turtle") now has a Boolean value called "predicate" that denotes if the turtle is active or not. In a conditional statement, the predicates for the turtles are set property so that the statements can be executed without being sequentialized. With this improvement, the semantics discrepancy is reduced. Also, there is a factor of 20 improvement in micro benchmarks, and a factor of 6 improvement on the overall performance in real examples