While the success and acceptance of Grids continues in scientific and commercial computing communities, the technology required to achieve the grid vision -- flexible, adaptive computing on demand for a wide range of applications -- is still in its infancy. In fact, the applications that are easily portable into the grid environment, while numerous, are mostly limited to a few paradigms (loosely-coupled parallel, asynchronous workflow, and multi-tier web-appserver-database applications). Applications that require more tightly coupled coordination, high performance data movement coordinated with computation, and real-time coupling of instruments remain difficult to design, implement, and manage to run well. These are serious hindrances to VGrADS’ goal of broadening the class of application types viable on grids.
We attack these problems by providing the notion of Virtual Grids (VGs), which provide a simple, yet scalable, abstraction of the distributed grid environment. Our fundamental assumption is that grid platforms are dynamic, shared resource environments of massive scale. This implies a range of limitations.
- Applications cannot individually scan or select from all of the resources, as the number is too vast. As a foundation, we presume a scalable resource information service.
- Resources are shared, widely distributed, and heterogeneous, so they may be unavailable for a wealth of reasons (other use, network disconnection, machine failure, etc.).
- Scaling and robustness for high load factors in the grid are desirable, both for good resource behavior and for reasonable turnaround times for applications.
- A separation of the application and resource management system is desirable, allowing the sharing of effort in the resource management system across multiple applications and the isolation of individual applications from grid idiosyncrasies.
Virtual grids are described by a virtual grid resource specification (usually specified in our Virtual Grid Definition Language (vgDL)) presented by the application to acquire resources for execution. A programmer can use vgDL to capture the desired resources for an application, including its parallelism and communication capabilities. These specifications are designed to be simple and flexible, maximizing the opportunity to match resources. To enable applications to guide detailed choices amongst resources to optimize performance, a “ranking function” is available for system use.
The pages listed at left outline some of the advances we have made in defining and using VGs.
- Virtual Grid Description Language (vgDL) is our language for defining VGs.
- VirtualGrids8-9-2004_V0.95TR.pdf is its (reasonably) formal definition.
- Slotted Virtual Grids is an extension of VGs to account for the time when resources may be available.