EXPLANATION

Here is a simple example of how to build a parallel application
from serial components.

In the serial version of the code, we set some temperature sources
in a "bar"  Initially, zones of the bar field look like

100 100 100 100 100 100 100 100 100 100

We define sources at either end that remain the same temperature
throughout  (200 degrees on the left and 0 degrees on the right).

At each time step, we get a new temperature by averaging a zone's
temperature with its neighbors.  This is done with a call to the
C routine "threepoint" in the stencil module.  We define left
and right boundary values so that each end point can build its
average.

We run this for a 100 timesteps or so and it converges to something
like:

200 177 155 133 111 88 66 44 22 0

To parallelize this, we count on the parallel stencil code in pstencil.c

We still generate local fields, but from then on, the parallel stenciler
takes care of the bookkeeping

  Try the parallel version (upto 10 procs)

  % mpirun -np 1 parallel_version.py
  % mpirun -np 2 parallel_version.py
  % mpirun -np 3 parallel_version.py
  % mpirun -np 7 parallel_version.py