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