Axel Kohlmeyer fdbce41887 Merge branch 'balance-weight-by-group' into lammps-icms
This includes pull request #130 by Iain Bethune (EPCC) with
additional modifications requested by Steve P. In contrast to
Iain's implementation, there is no modification to the group
command, but the group specific weight factors are provided
as command line arguments to the balance and fix balance
commands instead.

Here is the original description:

This feature branch introduces the concept of particle weighting, so
instead of balancing the number of particles per sub-domain instead
particles are weighted by a user-defined load_factor. The load_factor is
added as a new style in the group command, so that the weights can be
applied to logically grouped sets of atoms. The default load_factor is
1.0 so if the user does not specify anything the existing load balance
behaviour is maintained.

This is especially useful for systems when nlocal is not proportional to
the workload, for example hybrid pair_styles where some pair
interactions are more computationally intensive, and for RESPA runs with
high timestep ratios. Increasing the load_factor for particles involved
in more expensive or more frequent operations improves performance. In
my tests (atomistic BPTI in coarse-grained water, with RESPA ratios up
to 1:8) I get significant speedups over the current load balancer:

1fs/4fs on 24 cores: the default gives a 1% speedup, with load_factor
2.5 for the solute, an 11% speedup is obtained
1fs/8fs on 72 cores: the default fives a 23% speedup, with load_factor
4.0 I get 103% (more than twice as fast!)

The implementation works for both shift and rcb - actually for RCB it
makes use of the existing (but unused) wt parameter and for shift, the
number of local atoms is replaced by a weighted count. The actual load
balancing algorithms are unchanged, just the metric that is balanced.
2016-08-01 19:00:15 -04:00
2015-08-13 08:25:51 -04:00
2016-05-31 23:59:01 -04:00
2016-07-23 06:44:14 -04:00
2015-12-24 07:47:18 -05:00

This is the LAMMPS software package.

LAMMPS stands for Large-scale Atomic/Molecular Massively Parallel
Simulator.

Copyright (2003) Sandia Corporation.  Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software.  This software is distributed under
the GNU General Public License.

----------------------------------------------------------------------

LAMMPS is a classical molecular dynamics simulation code designed to
run efficiently on parallel computers.  It was developed at Sandia
National Laboratories, a US Department of Energy facility, with
funding from the DOE.  It is an open-source code, distributed freely
under the terms of the GNU Public License (GPL).

The primary author of the code is Steve Plimpton, who can be emailed
at sjplimp@sandia.gov.  The LAMMPS WWW Site at lammps.sandia.gov has
more information about the code and its uses.

The LAMMPS distribution includes the following files and directories:

README			   this file
LICENSE			   the GNU General Public License (GPL)
bench			   benchmark problems
couple			   code coupling examples using LAMMPS as a library
doc			   documentation
examples		   simple test problems
lib			   libraries LAMMPS can be linked with
potentials		   interatomic potential files
python			   Python wrapper on LAMMPS as a library
src			   source files
tools			   pre- and post-processing tools

Point your browser at any of these files to get started:

doc/Manual.html	           the LAMMPS manual
doc/Section_intro.html	   hi-level introduction to LAMMPS
doc/Section_start.html	   how to build and use LAMMPS
doc/Developer.pdf          LAMMPS developer guide
Description
Public development project of the LAMMPS MD software package
Readme GPL-2.0 1.2 GiB
Languages
C++ 87%
Tcl 5.5%
Cuda 1.8%
Python 1.5%
C 1.1%
Other 2.7%