Small optimization in CoordinationBase #1096
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
I changed how the couples are traversed in the CoordinationBase
calculate()
method, by passing from a "striped" traversal to a "block" one.I get a 3%-5% speedup on my local machine.
Here are some results I got on my workstation, the graph show the time spent in
calculate()
relative to the time spent in calculate in the master branchfor 4 mpi processes and 2 threads each one

for 1 process with 8 threads (Here I did not expect performance improvement)

Before removing the draft status I'd like to see if it is possible to not store the couples in the neighbor list if the user asks for a fixed list
Target release
I would like my code to appear in release 2.10 (but I think this can rebased on 2.9)
Type of contribution
Copyright
COPYRIGHT
file with the correct license information. Code should be released under an open source license. I also used the commandcd src && ./header.sh mymodulename
in order to make sure the headers of the module are correct.Tests