 # Five big ideas # Computational problems

There are many different ways to describe computational problems. Here are a few that are important to grid technology:

Parallel calculations: Parallel calculations can be split into many smaller sub-calculations. This means that each sub-calculation can be worked on by a different processor, so that many sub-calculations can be worked on "in parallel". This allows you to speed up your computation.

Embarrassingly parallel calculations: A calculation is embarrassingly parallel when each sub-calculation is independent of all the other calculations. For example, analyzing a large databank of medical images is embarrassingly parallel, since each image is independent of the others.

Coarse-grained calculations: Coarse-grained calculations are often embarrassingly parallel. "Monte Carlo simulations", where you vary the parameters in a model and then study the results, are also coarse-grained calculations.

Fine-grained calculations: In a fine-grained calculation, each sub-calculation is dependent on the result of another sub-calculation. For example, when calculating the weather, each calculation in one volume of atmosphere is affected by surrounding volumes. Fine-grained parallel calculations require very clever programming to make the most of their parallelism, so that the right information is available to processors at the right time.

High-performance vs. high-throughput:
Fine-grained calculations are better suited to high-performance computing, which usually involves a big, monolithic supercomputer, or very tightly coupled computer clusters with lots of identical processors and an extremely fast, reliable network between the processors.

Embarrassingly parallel calculations are ideal for high-throughput computing: more loosely coupled networks of computers where delays in getting results from one processor will not affect the work of the others.

And grid computing..?
Many interesting problems in science require a combination of fine- and coarse-grained calculations, and this is where grids can be particularly powerful:

For example, in the case of complex climate modeling, researchers launch many similar calculations to see how different parameters affect their models. Each calculation is a fine-grained parallel calculation that needs to run on a single cluster or supercomputer. Using a grid, these many independent calculations can be distributed over many different grid clusters, thus adding coarse-grained parallelism and saving a lot of time.  