next up previous contents index
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.

  1. The bond constraints acting in the simulated system are shared equally between the processing nodes.
  2. 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.
  3. 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.
  4. In the first stage of the SHAKE algorithm, the atoms are updated through the usual Verlet algorithm, without regard to the bond constraints.
  5. 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.
  6. When all necessary correction vectors have been received and added the positions of the constrained atoms are corrected.
  7. Steps 5 and 6 are repeated until the bond constraints are converged.
  8. 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).
  9. 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 up previous contents index
Next: DL_POLY_2 Construction and Execution Up: DL_POLY Parallelisation Previous: Summing the Atomic Forces   Contents   Index
W Smith 2003-05-12