Clouds seem like ’Grids Done Right’, including scalability, transparency, and ease of management. Virtual Machines are the dominant application environments for compute Clouds, however, that does not make application programming any less relevant than “non-virtualized” environments. The limited set of successful Cloud applications show that distributed programming patterns of the type of MapReduce and All-Pairs are required to make Cloud infrastructure a viable compute environment for a large class of problems. The existence of multiple implementations of these programming paradigms also makes clear, that application portability is, even for Clouds an emerging problem which needs addressing beyond the level of system virtualization. This paper discusses these and other challenges around cloud applications programming and development, and through a discussion of several applications, demonstrates potential solutions. We discuss how using the right abstractions – programming interfaces, frameworks that support commonly occurring programming and execution patterns – enable efficient, extensible and importantly system-independent implementations of common programming patterns such as MapReduce, i.e. same application is usable seamlessly on both traditional Grids and Clouds systems. We further discuss that lessons learned from programming applications for Grid environment also apply, to some extent, to Cloud environments.
[1]
Sanjay Ghemawat,et al.
MapReduce: simplified data processing on large clusters
,
2008,
CACM.
[2]
Wang,et al.
Replica Monte Carlo simulation of spin glasses.
,
1986,
Physical review letters.
[3]
Programming Abstractions for Large-scale Distributed Applications
,
2008
.
[4]
Said Mirza Pahlevi,et al.
Editorial: A Special Issue from the Open Grid Forum
,
2009
.
[5]
Sanjay Ghemawat,et al.
MapReduce: Simplified Data Processing on Large Clusters
,
2004,
OSDI.
[6]
GhemawatSanjay,et al.
The Google file system
,
2003
.
[7]
Bettina Schnor,et al.
Migol: A fault-tolerant service framework for MPI applications in the grid
,
2008,
Future Gener. Comput. Syst..