Hilbert sort¶
This module re-orders the particle data in halmd.mdsim.particle
according to a space-filling Hilbert curve. The idea behind is that
interacting particles, being close in space, are also close in memory for
better cache efficiency. The module is used and constructed internally by
halmd.mdsim.neighbour
, i.e. manual construction is not needed.
For details see:
- S. Aluru and F. Sevilgen, Parallel domain decomposition and load balancing using space-filling curves, Proc. 4th IEEE Int. Conf. High Performance Computing, p. 230 (1997)
- J. Anderson, C. D. Lorenz, and A. Travesset, General purpose molecular dynamics simulations fully implemented on graphics processing units, J. Comp. Phys. 227, 5342 (2008)
-
class
halmd.mdsim.sorts.
hilbert
(args)¶ Construct Hilbert sort module.
Parameters: - args (table) – keyword arguments
- args.particle – instance of
halmd.mdsim.particle
- args.box – instance of
halmd.mdsim.box
- args.binning – instance of
halmd.mdsim.binning
(see below)
If
particle
instance resides in GPU memory (i.e.particle.memory
isgpu
), abinning
instance is not required for construction of the Hilber sort module.-
order
()¶ Sort the particles according to a space-filling Hilbert curve.
-
disconnect
()¶ Disconnect neighbour module from core and profiler.