Resource use
Grids allow you to efficiently and automatically spread your work across many computer resources. The result? Your jobs are finished much faster.
Imagine if you had to do 1000 difficult maths questions. You could do them yourself, or you could use a computing grid. If you used a grid of 100 computers, you would give one question or "job" to each computer. When a computer finished one "job", it would automatically ask for another. In this way, your 1000 questions could be finished in a flash, with all 100 computers working to full efficiency.
But grids are shared resources, right? So what happens when there is a queue of people is waiting to use a computing grid? How do you decide whose "job" is next in line?
MIDDLEWARE TO THE RESCUE
Computing grids rely on middleware - special grid computing software - to allocate jobs efficiently. Middleware uses information about the different "jobs" submitted to each queue to calculate the optimal allocation of resources.
To do this, we ideally need to know how many jobs are in each queue, and how long each job will take. This doesn't work perfectly yet, but then, neither did the Web in its early days (remember when they called it the World Wide Wait?!)