About run LAMMPS with single core and multi core

Hi,

I run the same code in the same computers with single core and multi (2 and 4) and get different results.



TimeStep



1 core in Conputer A



1 core in Conputer B



4 core in Conputer A



2 core in Conputer B



Run 5000



Total # of neighbors = 492216



Ave neighs/atom = 157.711



Ave special neighs/atom = 0



Neighbor list builds = 0



Dangerous builds = 0



Total # of neighbors = 492216



Ave neighs/atom = 157.711



Ave special neighs/atom = 0



Neighbor list builds = 0



Dangerous builds = 0



Total # of neighbors = 492216



Ave neighs/atom = 157.711



Ave special neighs/atom = 0



Neighbor list builds = 0



Dangerous builds = 0



Total # of neighbors = 492216



Ave neighs/atom = 157.711



Ave special neighs/atom = 0



Neighbor list builds = 0



Dangerous builds = 0



Run 100000



Total # of neighbors = 513144



Ave neighs/atom = 164.417



Ave special neighs/atom = 0



Neighbor list builds = 143



Dangerous builds = 0



Total # of neighbors = 513144



Ave neighs/atom = 164.417



Ave special neighs/atom = 0



Neighbor list builds = 143



Dangerous builds = 0



Total # of neighbors = 512894



Ave neighs/atom = 164.336



Ave special neighs/atom = 0



Neighbor list builds = 159



Dangerous builds = 0



Total # of neighbors = 513396



Ave neighs/atom = 164.497



Ave special neighs/atom = 0



Neighbor list builds = 161



Dangerous builds = 0



Run 5000



Total # of neighbors = 513104



Ave neighs/atom = 164.404



Ave special neighs/atom = 0



Neighbor list builds = 5



Dangerous builds = 0



Total # of neighbors = 513104



Ave neighs/atom = 164.404



Ave special neighs/atom = 0



Neighbor list builds = 5



Dangerous builds = 0



Total # of neighbors = 513778



Ave neighs/atom = 164.62



Ave special neighs/atom = 0



Neighbor list builds = 7



Dangerous builds = 0



Total # of neighbors = 513668



Ave neighs/atom = 164.584



Ave special neighs/atom = 0



Neighbor list builds = 10



Dangerous builds = 0



Run 100000



Total # of neighbors = 491318



Ave neighs/atom = 157.423



Ave special neighs/atom = 0



Neighbor list builds = 129



Dangerous builds = 0



Total # of neighbors = 491318



Ave neighs/atom = 157.423



Ave special neighs/atom = 0



Neighbor list builds = 129



Dangerous builds = 0



Total # of neighbors = 491224



Ave neighs/atom = 157.393



Ave special neighs/atom = 0



Neighbor list builds = 141



Dangerous builds = 0



Total # of neighbors = 491416



Ave neighs/atom = 157.455



Ave special neighs/atom = 0



Neighbor list builds = 135



Dangerous builds = 0

As you can see only “run 5000” at the first time are the same.
With “run 100000” and “run 5000” at the second time are different.
Position of atoms are different, too.

LAMMPS 32-bit 20150430 and mpich2-1.4.1p1-win-ia32 are used.

Anyone can suggest about that?

Hi,

I run the same code in the same computers with single core and multi (2
and 4) and get different results.

*TimeStep*

*1 core **in Conputer A*

*1 core in Conputer B*

*4 core in Conputer A*

*2 core in Conputer B*

Run 5000

Total # of neighbors = 492216

Ave neighs/atom = 157.711

Ave special neighs/atom = 0

Neighbor list builds = 0

Dangerous builds = 0

Total # of neighbors = 492216

Ave neighs/atom = 157.711

Ave special neighs/atom = 0

Neighbor list builds = 0

Dangerous builds = 0

Total # of neighbors = 492216

Ave neighs/atom = 157.711

Ave special neighs/atom = 0

Neighbor list builds = 0

Dangerous builds = 0

Total # of neighbors = 492216

Ave neighs/atom = 157.711

Ave special neighs/atom = 0

Neighbor list builds = 0

Dangerous builds = 0

Run 100000

Total # of neighbors = 513144

Ave neighs/atom = 164.417

Ave special neighs/atom = 0

Neighbor list builds = 143

Dangerous builds = 0

Total # of neighbors = 513144

Ave neighs/atom = 164.417

Ave special neighs/atom = 0

Neighbor list builds = 143

Dangerous builds = 0

Total # of neighbors = 512894

Ave neighs/atom = 164.336

Ave special neighs/atom = 0

Neighbor list builds = 159

Dangerous builds = 0

Total # of neighbors = 513396

Ave neighs/atom = 164.497

Ave special neighs/atom = 0

Neighbor list builds = 161

Dangerous builds = 0

Run 5000

Total # of neighbors = 513104

Ave neighs/atom = 164.404

Ave special neighs/atom = 0

Neighbor list builds = 5

Dangerous builds = 0

Total # of neighbors = 513104

Ave neighs/atom = 164.404

Ave special neighs/atom = 0

Neighbor list builds = 5

Dangerous builds = 0

Total # of neighbors = 513778

Ave neighs/atom = 164.62

Ave special neighs/atom = 0

Neighbor list builds = 7

Dangerous builds = 0

Total # of neighbors = 513668

Ave neighs/atom = 164.584

Ave special neighs/atom = 0

Neighbor list builds = 10

Dangerous builds = 0

Run 100000

Total # of neighbors = 491318

Ave neighs/atom = 157.423

Ave special neighs/atom = 0

Neighbor list builds = 129

Dangerous builds = 0

Total # of neighbors = 491318

Ave neighs/atom = 157.423

Ave special neighs/atom = 0

Neighbor list builds = 129

Dangerous builds = 0

Total # of neighbors = 491224

Ave neighs/atom = 157.393

Ave special neighs/atom = 0

Neighbor list builds = 141

Dangerous builds = 0

Total # of neighbors = 491416

Ave neighs/atom = 157.455

Ave special neighs/atom = 0

Neighbor list builds = 135

Dangerous builds = 0

As you can see only "run 5000" at the first time are the same.
With "run 100000" and "run 5000" at the second time are different.
Position of atoms are different, too.

LAMMPS 32-bit 20150430 and mpich2-1.4.1p1-win-ia32 are used.

Anyone can suggest about that?

​there is nothing to suggest, this is expected behavior. it is a frequently
discussed topic. the basic arguments are the following

- MD is based on ​solving coupled partial differential equations, that is a
system capable of chaotic behavior.
- LAMMPS uses floating point math, which is not associative, which in turn
leads to small changes due to the order of operations, which due to the
chaotic nature of MD will result in an eventual exponential divergence of
trajectories
- on modern CPUs and with high compiler optimization, even for runs on
identical hardware, MD software based on floating point math will lead to
eventually diverging trajectories, since thermal noise can influence the
value of denormalized numbers (e.g. when the sum of two numbers is so close
to zero, that the mantissa of the floating point number needs to be smaller
than 1 (usually it is between 1.0 and 2.0).
- despite the non-perfect reproducability, the generated trajectories are
statistically equivalent and sample the same phase space.

axel.

And see section 12.1 of the doc pages.

Steve