ls1-MarDyn is a massively parallel Molecular Dynamics (MD) code for large systems. Its main target is the simulation of thermodynamics and nanofluidics. ls1-MarDyn is designed with a focus on performance and easy extensibility.
Until now, the check for duplicates does not really scale.
This PR suggests an alternative solution.
Benefits:
Faster
Downside:
More memory consumption
How Has This Been Tested?
[x] Run simulation with duplicate ID inside/outside of same rank. Use different number of particles (e.g. 1000, 1e6 and 1e8). Check execution time of check.
Execution times of DomainDecompMPIBase::assertDisjunctivity() for simulation run with 8 cores on an Intel i9-7940X:
Number of particles
master
PR
1000
0.00016
0.00018
1e6
0.270161
0.036375
1e8
72.65190
4.7937
Note that the method in this PR needs more memory compared to the one of the master!
Description
Until now, the check for duplicates does not really scale. This PR suggests an alternative solution.
Benefits:
Downside:
How Has This Been Tested?
DomainDecompMPIBase::assertDisjunctivity()
for simulation run with 8 cores on an Intel i9-7940X:Note that the method in this PR needs more memory compared to the one of the master!