Porting Applications to Grids and Clouds

Porting Applications to Grids and Clouds

Wolfgang Gentzsch (Duke University, USA)
DOI: 10.4018/978-1-60566-374-6.ch033
OnDemand PDF Download:
No Current Special Offers


A Grid enables remote, secure access to a set of distributed, networked computing and data resources. Clouds are a natural next step of Grids towards the provisioning of computing as a service. To “Gridenable” applications, users have to cope with: complexity of grid architectures; different compute and data nodes; wide spectrum of grid middleware tools and services; the e-science application architectures, algorithms and programs. Therefore, the aim of this chapter is to guide users through the important stages of implementing applications on Grid and Cloud infrastructures, together with a discussion of important challenges and their potential solutions. As a case study, we present the DEISA Distributed European Infrastructure for Supercomputing Applications and describe the DEISA Extreme Computing Initiative DECI for porting and running scientific grand challenge applications on the DEISA Grid. This chapter concludes with an outlook on Compute Clouds, and the top ten rules of building a sustainable Grid.
Chapter Preview


Over the last 40 years, the history of computing is deeply marked by the application developers who continuously port and optimize their application codes to the latest and greatest computing architectures and environments. After the von-Neumann mainframe, there was the vector computer, then the shared-memory parallel computer, the distributed-memory parallel computer, the very-long-instruction word computer, the workstation cluster, the meta-computer, and the Grid (never mind, it continues with SOA, Cloud, Virtualization, Many-core, and so on). There is no easy solution to this, and the real solution would be a separation of concerns between discipline-specific content, domain-independent software and hardware infrastructure. However, this often comes along with a loss of performance stemming from the overhead of the infrastructure layers. Recently, users and developers face another wave of complex computing infrastructures: the Grid.

Let’s start with answering the question: What is a Grid? Foster and Kesselman (1998) attempted the following definition: A computational grid is a hardware and software infrastructure that provides dependable, consistent, pervasive, and inexpensive access to high-end computational capabilities. In a subsequent article (Foster, 2002), this definition was changed to include social and policy issues, stating that Grid computing is concerned with coordinated resource sharing and problem solving in dynamic, multi-institutional virtual organizations. The key concept is the ability to negotiate resource-sharing arrangements among a set of participating parties (providers and consumers) and then to use the resulting resource pool for some purpose. Furthermore, the sharing that we are concerned with is not primarily file exchange but rather direct access to computers, software, data, and other resources, as is required by a range of collaborative problem-solving and resource-brokering strategies emerging in industry, science, and engineering. This sharing is, necessarily, highly controlled, with resource providers and consumers defining clearly and carefully just what is shared, who is allowed to share, and the conditions under which sharing occurs. A set of individuals and/or institutions defined by such sharing rules form what we call a virtual organization. This author’s concern, from the beginning (Gentzsch, 2002), was that the new definition seemed very ambitious, and as history has proven, many of the Grid projects with a focus on these ambitious objectives did not lead to a sustainable grid production environment, so far. We can only repeat that the simpler the grid infrastructure, the easier it is to use with better chance for success. It is for this reason that currently the so-called Clouds are becoming more and more popular (Amazon, 2007).

Over the last ten years, hundreds of applications in science, industry and enterprises have been ported to Grid infrastructures, mostly prototypes in the early definition of Foster and Kesselman (1998). Each application is unique in that it solves a specific problem, based on modeling, for example, a specific phenomenon in nature (physics, chemistry, biology, etc.), presented as a mathematical formula together with appropriate initial and boundary conditions. Applications could be represented by its discrete analogue using sophisticated numerical methods, translated into a programming language computers can understand, adjusted to the underlying computer architecture, embedded in a workflow, and accessible remotely by the user through a secure, transparent and application-specific portal. These examples summarize the wide spectrum and complexity we face in problem solving on grid infrastructures.

Complete Chapter List

Search this Book: