On the support for heterogeneous languages in cloud runtimes - Ericson, Kathleen, author; Pallickara, Shrideep, advisor; Bohm, Anton Pedro Willem, 1948-, committee member; Randall, David A. (David Allan), 1948-, committee member (Colorado State University. Libraries, 2010)
Cloud runtimes are an effective method of distributing computations, but often have little support for computations written in diverse languages. We have extended the Granules cloud runtime with a bridge framework that allows computations to be written in a number of languages. Granules computations are dynamic and can be characterized as long-running with intermittent CPU bursts, allowing state to build during successive rounds of execution. Our goal is to develop a framework that supports real-time processing in long-running computations that maintain state across multiple runs of the computation. Due to the nature of Granules computations, we need the bridges to be bidirectional - both Granules and the bridged computation should be able to steer the program flow as needed. In order to conserve resources, and maintain communications during heavy loads, the framework needs to allow communication over multiple channels, and be able to switch the bridging mechanism in a transparent manner. Different communication methods should be available to a computation at all times, without requiring rewrites of an original computation. Our current implementation supports bridging in C, C++, C#, Python, and R. We have also designed a diagnostics system, which gathers information on system state and is able to modify the underlying bridge framework in response to system load. This diagnostics system is capable of initiating a switch of communications methods transparently, which allows the system to free up limited resources as necessary.
Keywords: distributed computations; cloud runtimes; Granular computing; Cloud computing; Programming languages (Electronic computers)