The parallel version of LUCAS (pLUCAS) uses the same model as the serial version, but is designed to run on a network of high-end workstations via the Parallel Virtual Machine (PVM) software package [22]. This implementation takes a very coarse-grained approach to parallelism. For accuracy purposes, the stochastic simulation of LUCAS requires multiple independent replicates which can easily be run independently on separate machines. The difficulty arises in managing the interprocessor communication, the scheduling of tasks and the handling of data.
Figure 6: Relationship between master and servant tasks in pLUCAS
To simplify the problem, centralized task management is used by pLUCAS
(see Figure 6). One task
on the virtual machine is known as the
master while all other tasks are servants. The
servant tasks are almost identical to the serial version of LUCAS with
only a few minor modifications. Each servant accesses its own copy of
the GIS on its local disk because of the intense I/O required. The
master, on the other hand, handles all task management and works
directly with the permanent GIS. The master manages a FIFO job
queue which consists of all of the independent replicates of one or
multiple simulations. In the serial version of LUCAS, the statistics
for the original maps are collected at the beginning of each run, but
the parallel version has a single job dedicated to that purpose as
shown in Figure 6. Two other queues are maintained to
manage available processors: the run queue and the idle queue. When a
servant is available, i.e., at the head of the idle queue, it is
assigned the next task on the job queue. This continues until all
tasks have been dispatched. When a task has completed, the host is
moved from the run queue to the idle queue. After all tasks have
completed, the data from the servants are shipped back to the master
to be reassembled and installed in the permanent GIS.
The pLUCAS master task uses the Park and Miller generator mentioned in
Section 3.3.3 to create random number seeds which insure that
the sequences generated by the servant tasks' R250 random number
generators are independent [6]. These seeds are
passed to the servant tasks as they are spawned.