This project seeks to redefine how developers can exploit the computational power of modern datacenters. Today, developers must specify how each compute job is split across the many machines in a datacenter. This project will allow programmers to merely write programs intended for a single machine; these programs are then transformed (by the technologies developed in this project) into a form that can take advantage of the abundant parallelism available in datacenters. Thus, in this approach, developers are not just programming a single computer, but the entire datacenter.<br/><br/>This project leverages the recent advances in serverless computing, and extends its generality by addressing several fundamental questions, such as:<br/>- How can one provide fault tolerance and improved Input/Output performance for both existing and emerging serverless applications?<br/>- How can one efficiently ensure consistency when running serverless applications which might access the same data? <br/>- Can one automatically translate code written to be executed on a single server so it can run in a serverless environment where each execution is only allowed to run for bounded time (after which it is terminated)? <br/><br/>Serverless computing is an increasingly popular paradigm, since it allows application developers to deploy applications without managing individual virtual machines. However, the current approach is incomplete which both impacts its generality (by limiting applications that can be executed) and correctness (since correctly implementing applications requires developers to reason about runtimes and resource access times). This project will eliminate these limitations of serverless computing, thus enabling a larger set of applications to be deployed as serverless applications. This will make it easier to harness the power of datacenters, thereby enabling progress in myriad areas of significant social and commercial importance. <br/><br/>The work developed in this project will be placed on a public github repository, with the appropriate documentation so that the technologies are available to all interested parties.<br/><br/>This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.