Commit Graph

17515 Commits

Author SHA1 Message Date
71ef6fb4d9 incorporate refactored weighting into fix balance 2016-08-04 08:04:21 -04:00
ecbbdc2e7f convert weight array from class member to local pointer to temporary storage 2016-08-04 08:03:38 -04:00
d40de42af8 proof-of-concept implementation for neighbor list based balancing with yet unsolved problems 2016-08-04 02:02:34 -04:00
3f674e5062 re-factored balance command now works with group and time weights 2016-08-03 18:34:24 -04:00
8ff0085cba complete implementation for group based imbalance class 2016-08-03 13:43:39 -04:00
362a26a3de prototype implementation for extensible imbalance scheme 2016-08-02 23:19:26 -04:00
7faba04089 fix subtle 64-bit integer bug in fix print and fix store/state 2016-08-02 21:42:44 -04:00
b44492ee05 fix elusive uninitialized data bug reported by valgrind 2016-08-02 16:54:03 -04:00
bda51f2bac be a bit more paranoid about initializing data structures 2016-08-02 16:53:12 -04:00
81b8333109 update to colvars library version 2016-08-01 2016-08-02 15:17:16 -04:00
58e77eacc7 Merge branch 'balance-by-time' into lammps-icms
This adds wall clock based weighting to the load-balancing code.
Clock based weighting can be used independently and in addition
to the group based weighting from PR #130. With the proper choice
of settings the combination of both seems to give the best balancing.
2016-08-02 08:24:39 -04:00
f758a4f4d0 make it so that dynamic load balancing only uses the timing since the last balancing 2016-08-02 08:09:39 -04:00
f14e9cee83 minor tweaks and comment fixes 2016-08-02 07:32:44 -04:00
af224028a9 improve c++-11 compliance. replace variable size stack allocation. 2016-08-02 06:42:30 -04:00
2e0b9cae29 whitespace cleanup 2016-08-02 06:41:30 -04:00
b635930cfd Merge branch 'lammps-icms' into balance-by-time 2016-08-02 06:33:21 -04:00
cc487af9e4 Merge remote-tracking branch 'lammps-ro/master' into lammps-icms 2016-08-02 06:20:54 -04:00
9ea86965c5 disable debug output and include bond cost as well 2016-08-02 01:24:00 -04:00
2a57dc6db4 implement wall clock based load balancing cost function support 2016-08-02 01:17:53 -04:00
047f313356 undo changes to the group command related to load balancing 2016-08-01 19:06:03 -04:00
495ab323d1 remove unused function prototype 2016-08-01 19:03:33 -04:00
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
76b8bbca8e update documentation according to the modified implementation based on iain bethune's contributed code 2016-08-01 18:59:37 -04:00
5a81288329 implement modified version of balance and fix balance according to steve's suggestions and requirements 2016-08-01 18:58:52 -04:00
56502c7c09 git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15423 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-08-01 22:57:27 +00:00
7326f88521 git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15422 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-08-01 22:56:43 +00:00
1cdd1fd4f8 git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15420 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-08-01 22:43:21 +00:00
69513a29ab git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15419 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-08-01 22:40:49 +00:00
98aee05152 git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15418 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-08-01 21:30:11 +00:00
e6c5898e53 git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15417 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-08-01 21:11:50 +00:00
a9a8a599d0 git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15416 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-08-01 21:01:23 +00:00
0995ab4b65 git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15415 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-08-01 20:55:29 +00:00
ce5f174281 git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15414 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-08-01 20:35:57 +00:00
fa856c7657 undo changes to Group class 2016-08-01 15:49:59 -04:00
aaac40dcb4 Merge branch 'weighted_load_balance' of https://github.com/ibethune/lammps into merge-pull-130 2016-08-01 15:46:09 -04:00
ef2f16a240 more thorough checks on valid numbers when computing box/virial related properties 2016-08-01 11:52:07 -04:00
a8f40013b7 remove unused variable 2016-08-01 07:56:54 -04:00
e3eb617652 update several old input files to current syntax 2016-07-31 18:32:48 -04:00
11f772969f correct typo 2016-07-31 06:55:15 -04:00
1d17eed48c Merge remote-tracking branch 'lammps-ro/master' into lammps-icms 2016-07-31 06:54:57 -04:00
6ff87be849 git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15413 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-07-30 21:24:55 +00:00
26622f2826 git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15412 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-07-30 18:40:03 +00:00
7ec3c90b86 git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15411 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-07-30 16:09:32 +00:00
fd05571ee0 git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15410 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-07-30 16:09:11 +00:00
5b5f839265 git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15409 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-07-30 16:08:42 +00:00
d3e47eef1c git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15407 f3b2605a-c512-4ea7-a41b-209d697bcdaa r15407 2016-07-30 15:17:32 +00:00
f9c6ec768b git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15406 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-07-30 15:11:41 +00:00
fb13763ef9 git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15404 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-07-30 14:52:58 +00:00
22fe3fd178 git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15403 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-07-30 14:52:18 +00:00
58be921a09 git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15402 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-07-30 14:51:20 +00:00