``Life'' is a familiar cellular automaton, in which cells on a two-dimensional board are updated according to the current state of their eight neighbours. It provides a simple illustration of the the archetypal nearest-neighbour update, which recurs in various numerical simulations, and lends itself well to parallel computation.
The Java implementation uses an experimental version of a class library intended to facilitate data-parallel computations on regular arrays. Characteristics of this approach, similar to High Performance Fortran, include
Clicking on the ``Life'' button brings up a menu of parameters which can be changed. These include the size of the grid (``board''), the number of iterations, and the frequency with which the state of the board is displayed. Displaying the board generally takes much longer than updating it: for benchmarking purposes the display should happen infrequently (for demonstration purposes, frequently). The options also allow changing the distribution format of the board--the way the board is split between processors. Like HPF, block or cyclic distributions are allowed.
Clicking on the ``Begin'' button causes the simulation to start. The initial state of the board is currently a fixed ``cross'' of live cells. This will evolve into more interesting patterns as the simulation proceeeds. The processor ``owning'' a portion of the board is coded through the colour of the cells, providing a clear visualization of the various distribution formats.
The processor set can be changed by clicking the ``Proc'' button. The parameters or distribution format can be changed by clicking the ``Life'' button again.