For those who aren't familiar with the concept of Grid Computing, a brief primer:
Grid is a well known paradigm designed to reduce the time it
takes to perform a batch job through distributed parallelization.
How
does it work?
Most grid solutions are built out of three main components:
- Compute Agents - a lightweight process that makes a compute resource grid-aware; i.e., available to the grid.
- Resource
Manager - collects and monitors information about availability of compute resources, as well as maintaining the liveliness of those resources.
- Scheduler - this is where the heavyweight work is done. The scheduler is responsible for matching between the task specification and the available resources.
Using a Compute Grid allows us to break a batch job into smaller units of work, a.k.a tasks. At this point we can submit the job to the scheduler, specifying the requirements and specifications (Service Level Agreements) required for running the job. Requirements can be specified as a type of OS/HW pre-requisites, etc. The scheduler then takes those requirements and executes the job on the available compute resources that match those requirements. Compute farms can be as large as 10Ks of CPUs.
This approach was used with great success in the past few years, and today
most financial institutions have a compute backbone as a core
piece of their IT infrastructure.
Utilizing
Compute Grids for a Wider Range of Applications
Victoria Livschitz from Grid Dynamics gave a presentation in Spain last week During an HP event in which she discussed the various options for integrating the two complementing technologies. Her scenarios ranged from a relatively trivial scenario in which the two solutions “live” together, side by side, in the same environment with very little integration between them; and ended with a complete data-aware scheduling, in which the compute grid becomes data-aware and is using this awareness to optimize the way jobs are routed and executed. Livschitz describes a case study for creating inter-day P&L (Profit and Loss) reporting for a trading application using the GigaSpaces In-Memory Data Grid and DataSynapse Compute Grid. In that scenario, Grid Dynamics managed to reduce the application start-up time from 40 min to 15 min and access time from couple of minutes to seconds, by putting the database behind an In-Memory Data Grid. This enabled the move from post trade reporting (over night) to inter-day reporting. View Livschitz' presentation (pdf).
Compute
Grids for the Masses
Due to the large amount of required resources, Grids were so far mostly used by large organizations, such as major financial or manufacturing organizations. However, the introduction of Amazon Elastic Compute Cloud (Amazon EC2) brings the grid to the masses, and with the recent upgrades made to this platform, it is becoming applicable to both low-end and high-end applications. In fact, at GigaSpaces, we're developing an integration with Amazon EC2 that would make it data-aware and therefore will meet the tough requirements of those high-end applications. As Geva Perry wrote in his blog post Scaling Stateful Applications on Amazon EC2:
...we've made available a public AMI (Amazon Machine Image) for the GigaSpaces XAP platform. We're still working on improvements and optimizations, but it is ready for people to start playing around with.
- You can find the GigaSpaces AMI here.
- General description in the Amazon Web Services Solution Catalog here.
- Detailed paper with set up instructions and code examples here (PDF).
We're already working with a couple of beta customers on EC2, including some folks who are building a Web 2.0 social networking type sites.
Stay tuned for updates on this
topic!
Recent Comments