One of the major recent advances in computing is the development of large scale data centers, wherein hundreds of thousands of computers may be housed in each data center. In cloud computing, individual applications can each lease computing space to execute on one or more of a data center?s computers. Cloud applications often need to dynamically adjust the amount of resources that they lease, elastically scaling up or down the amount of processing, memory, storage and/or network bandwidth that they need. Today's cloud-based systems burden application developers by requiring elasticity to be explicitly encoded into their software. This project seeks instead to investigate an approach that eases the task of elasticizing cloud-based applications by automatically incorporating elasticity at the operating system (OS) level to support dynamic scaling of applications. This project plans to develop an open source software tool called ElasticOS that incorporates elasticity into the Linux OS, with the hope that such a practical tool could lead to significant broader impacts for society, namely transforming the way that major cloud providers deploy applications within their cloud infrastructure, and benefiting application developers by easing the complexity of elastic programming in the cloud.

The intellectual merit and research advances expected from this project concern the development of novel techniques and tools for supporting elasticity of memory, networking, storage, and processing in cloud-based modern operating systems. In particular, the project will explore the feasibility and performance of a new concept to achieve elastic memory by stretching of processes/threads across cloud machines using the idea of elastic page tables. Further research challenges expected to be addressed by the proposal include the following: identifying and building the major components of an elastic OS architecture; devising a way to unify the network address space across multiple nodes so that network I/O can be treated as elastic; discovering a practical adaptive online algorithm for page clustering and placement that exploits application locality and parallelism; extending network elasticity to on-chip networking; discovering methods to accommodate multi-threading in elasticity; and developing a timely and accurate protocol for discovering available elastic cloud resources. The project intends to test four different types of standard applications on top of ElasticOS in order to better understand how to tune the elasticity: a large in-memory database application; a compute-intensive application; a network-intensive Web server application; and a ubiquitous computing application. The PIs are highly qualified to pursue the proposed research, and have well-known expertise in operating systems, networking, mobile cloud computing, computer architecture, wireless sensor networks, and distributed systems. Additional important broader impacts for society resulting from this project are expected to include enhancing the curriculum of advanced graduate systems courses and enabling undergraduate students, underrepresented minorities and women to participate in the project through programs such as REU and the Colorado Diversity Initiative.

Project Start
Project End
Budget Start
2013-09-01
Budget End
2019-08-31
Support Year
Fiscal Year
2013
Total Cost
$757,992
Indirect Cost
Name
University of Colorado at Boulder
Department
Type
DUNS #
City
Boulder
State
CO
Country
United States
Zip Code
80303