particlelayout — A description of a particle layout.
particlelayout ::= (parameter*)
The particlelayout element contains descriptions on how to partition the layout of a particle set referenced by href.
Partition the layout of a particle set and choose a neighbor engine other than the default engine. Contains instructions on the process and data parallelism.
The following elements occur in simulation: parameter
Optional, the neighbor engine to evaluate the neighbor lists. See also implementation details.
Optional, if "true" (default), each node has its own particle set (replicas) and peforms independent simulations. If "false", there is only one particle set and all the nodes work on the same particle set.
Optional, the particle set whose layout will be partitioned.
Reserved.
Reserved.
The list of parameters meaningful to particlelayout. See also unitcell
| name | condition | datatype | result |
|---|---|---|---|
| grid | none | integer | Set the grid partition in the D directions |
| mpi_grid | none | integer | Set the mpi grid partition in the D directions |
| omp_grid | none | integer | Set the openmp grid partition in the D directions |
The design of particlelayout in applications is still changing. The valid options for the method attribute are (grid | N2 | distributed) and the user should choose the method based on the maximum interaction range rcutoff of a problem.
| grid | Default. Use a linked-cell method and work on any size. The performance can be worse than N2 for certain problem sizes. With replica="false", the particle set is not distributed, i.e., all the nodes maintain an identical state of the particle set, but the work to build the list is distributed. |
| N2 | Use N-by-N search. Suitable for a unitcell which satisfies L/2 < rcutoff. With replica="false", the behavior is the same as method="grid". |
| distributed | Use a linked-cell method and work on any size. It overwrites the attribute replica to be "yes" and apply domain decomposition: the particle set is distributed and the work to build the list is distributed. |
Consider choosing method="N2" for molecular systems of modest sizes unless running on slow CPUs.
Consider surface-to-volume ratio of your system with respect to the number of parallel processors you are using. The minimum grid partition per direction that justifies domain decompositions is 3.
This example shows how to partition a big problem using a 8x8x8 spatial grid and distribute the particle set over 2x2x2 mpi grid.
<particlelayout method="distributed">
<parameter name="mpi_grid">2 2 2</parameter>
<parameter name="grid">8 8 8</parameter>
</particlelayout>