Next: DL_POLY_2 Construction and Execution
Up: DL_POLY Parallelisation
Previous: Summing the Atomic Forces
  Contents
  Index
The RD-SHAKE and Parallel QSHAKE Algorithms
The RD-SHAKE algorithm is a parallel adaptation of SHAKE couched in
the Replicated Data strategy. The essentials of the RD-SHAKE method
are as follows.
- The bond constraints acting in the simulated system are shared
equally between the processing nodes.
- Each node makes a list recording which atoms are bonded by
constraints it is to process. Entries are zero if the atom is not
bonded.
- A copy of the array is passed to each other node in turn.
The receiving node compares the incoming list with its own and keeps a
record of the shared atoms and the nodes which share them.
- In the first stage of the SHAKE algorithm, the atoms are
updated through the usual Verlet algorithm, without regard to the bond
constraints.
- In the second (iterative) stage of SHAKE, each node calculates
the incremental correction vectors for the bonded atoms in its own list
of bond constraints. It then sends specific correction vectors to all
neighbours that share the same atoms, using the information compiled
in step 3.
- When all necessary correction vectors have been received and
added
the positions of the constrained atoms are corrected.
- Steps 5 and 6 are repeated until the bond constraints are
converged.
- After convergence the coordinate arrays on each node are
passed to all the other nodes. The coordinates of atoms that are not in the constraint list of a given node are taken from the
incoming
arrays (an operation we term splicing).
- Finally, the change in the atom positions is used to calculate
the
atomic velocities.
This scheme contains a number of non-trivial operations, which are
described in detail in [30]. However some general comments
are worth making.
The compilation of the list of constrained atoms on each node, and the
circulation of the list (items 1 - 3 above) need only be done once in
any given simulation. It also transpires that in sharing bond
contraints between nodes, there is an advantage to keeping as many of
the constraints pertaining to a particular molecule together on one
node as is possible within the requirement for load balancing. This
reduces the data that need to be transferred between nodes during the
iteration cycle. It is also advantageous, if the molecules are small,
to adjust the load balancing between processors to prevent shared
atoms. The loss of balance is compensated by the elimination of
communications during the SHAKE cycle. These techniques are exploited
by DL_POLY_2 .
The QSHAKE algorithm is an extension of the SHAKE algorithm for
constraint bonds between rigid bodies. The parallel strategy is
very similar to that of RD-SHAKE. The only significant difference is that increments
to the atomic forces, not the atomic positions, are passed between
processors at the end of each iteration.
Next: DL_POLY_2 Construction and Execution
Up: DL_POLY Parallelisation
Previous: Summing the Atomic Forces
  Contents
  Index
W Smith
2003-05-12