Cloud computing has become mainstream in today’s HPC world. Although there is no consensus on the definition of cloud computing, it is typically perceived as a set of shared and scalable commodity computing resources that are geographically located throughout the world and are available on-demand over the web.
There has been a great amount of confusion over whether cloud computing is a new infrastructure or the same old HPC that we know, wrapped in a new name as a marketing gimmick. Review of the literature points to the fact that a large section of the academic community still debates this question.
Buyya et al. argue that cloud computing appears to be similar to grid computing at a cursory glance. However, a closer observation presents a different case. Armburst et al. supports the claim of Buyya et al., adding that the cloud computing platform uniquely provides an illusion of infinite available resources.
Lee advocates the difference by employing the case of Hurricane Katrina in 2005 to conclude that the only answer to the scientific and operational grand challenge problem is enormous computer power. However, it is not economically possible to dedicate the required amount of resources for this single purpose. Therefore resources must be shared and available on-demand, the platform should be scalable on-demand, and resources should be easily accessible in a user friendly way over the web. The grid computing platform or any other large compute cluster cannot adapt to these guidelines.
Foster et. al presents a comprehensive comparison of the grid computing and the cloud computing platforms. The authors recognize the similarity in the two platforms in terms of the vision and challenges, but the authors also make a solid case to differentiate the two platforms in terms of scale of operation. The authors agree that the more massive scale being offered by the cloud computing platform can demand fundamentally different approaches to tackle a gamut of problems.
Such confusion has hampered the curious nature of researchers to explore cloud computing. With a vague assumption that there aren’t any challenges that have not been previously posed by various distributed computing platforms such as compute-clusters and grid computing, many of the HPC researchers have not been motivated enough to explore the newer research challenges and opportunities in offering computing as a utility. Furthermore, the lack of universal development standards for cloud computing platforms mandate the eScience developers to rewrite their respective applications from scratch for every cloud offering.
Although cloud computing has many aspects closely similar to the traditional parallel and distributed computing platforms, it poses a new set of its own challenges. Traditional large-scale computing resources were not targeted at enabling end-users to rent compute hours with provisioning time being in minutes.
On the contrary, cloud computing facilitates experimentation with an idea on a massive platform without investing the capital in owning the resources. Therefore, it has the potential to target a much bigger set of users not necessarily familiar with the parallel or distributed computing aspects.
In order to enable the HPC researchers who currently work with large distributed computing systems, but do not work with cloud computing, to bring their expertise to cloud computing, it is essential to provide them with easier means of applying their knowledge.
One way of doing this is by allowing them familiar frameworks from a traditional HPC setting. If all cloud platforms supported frameworks and runtimes such as BSP, MPI, and Map-reduce, it would have been so much easier for their adoption. Our research concentrated on the problem of bringing the frameworks such as bag-of-tasks and MPI to cloud platforms. Our implementation on Microsoft’s Azure cloud platform provided some positive results.
We were able to create (simple) applications from scratch and deploy them in less than 2 hours. The lines of code were about 200-300 lines that includes the file handling, processing, and reporting. These applications were not very complex but they serve as proofs of concept that such frameworks can help motivate developers to create applications for cloud platforms.
We did not beat the performance of the Azure APIs with our frameworks, but that was never the vision. We have increased the programmer productivity by manifold without sacrificing the performance. Our results show performance at par with applications that employ native Azure APIs. Our major contribution is that it is now easier for anyone to write an MPI-style application on the Azure platform without learning a single Azure API and without understanding the idiosyncrasies of the Azure cloud platform.
We envision future research to concentrate on unifying the theme of cloud computing by offering seamless portability among various cloud vendors, rich set of resources to suit a large user base (multi-core, many-cores etc.), better resource management, faster time to provision resources, and improved debugging interface.
About Dinesh Agarwal: Dinesh Agarwal recently graduated with a Ph.D. from Georgia State University. He is currently pursuing a career as an entrepreneur working with both HPC in the cloud and to solve a pesky problem that bothered him as a student with Bookup. You can find him on LinkedIn, @Twitter, or simply email him at dinwal at gmail dot com.