Clock driven programming: a programming paradigm which enables machine-independent performance design

Cloud computing provides more efficient resource utilization and reduced costs for software systems. However, performance assurance of these systems is difficult because the execution environment cannot be precisely specified and can change dynamically. This paper presents a new programming paradigm, in which software performance is independent from execution environments. The paradigm is called clock driven programming (CDP). The main idea is to introduce the notion of a periodic timer, i.e., clock, for synchronizing program execution timing, just like a clock signal is used in synchronous circuit design. This paper defines CDP and derives the theoretical throughput formula of a CDP program. A CDP program shows the same throughput, even if it runs on different execution environments when its timer period is the same. Therefore, using the CDP enables performance assurance in cloud.

[1]  Arthur J. Bernstein,et al.  Analysis of Programs for Parallel Processing , 1966, IEEE Trans. Electron. Comput..

[2]  Carlo Ghezzi The challenges of open-world software , 2007, WOSP '07.

[3]  David Harel,et al.  On folk theorems , 1980, CACM.