Same code different results in two computers

Asked by ceguo

Hi,

I installed Yade-0.90 in two computers, one is my desktop, the other is a supercomputer. And I run same code on the two platforms I got different results.

Besides, I found if I put NewtonIntegrator() before or after PeriTriaxController() in O.engines, I also got different results. So I am wondering where did these differences come from?

Ning

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Bruno Chareyre
Solved:
Last query:
Last reply:
Revision history for this message
Jan Stránský (honzik) said :
#1

Hi Ning,

have you tried to run the same simulation on two computers using only *one*
core?

for correct order of engines, see
https://yade-dem.org/doc/user.html#base-engines

Jan

2012/11/29 ceguo <email address hidden>

> New question #215531 on Yade:
> https://answers.launchpad.net/yade/+question/215531
>
> Hi,
>
> I installed Yade-0.90 in two computers, one is my desktop, the other is a
> supercomputer. And I run same code on the two platforms I got different
> results.
>
> Besides, I found if I put NewtonIntegrator() before or after
> PeriTriaxController() in O.engines, I also got different results. So I am
> wondering where did these differences come from?
>
> Ning
>
> --
> You received this question notification because you are a member of
> yade-users, which is an answer contact for Yade.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-users
> Post to : <email address hidden>
> Unsubscribe : https://launchpad.net/~yade-users
> More help : https://help.launchpad.net/ListHelp
>

Revision history for this message
ceguo (hhh-guo) said :
#2

Hi Jan,

Thanks for the reply. I 'guess' NewtonIntegrator should be posed after PeriTriaxController, right? But I check some given example codes, I see someone puts NewtonIntegrator before the controller engine, which makes me confusing.

How can I specify using only one core for YADE simulation?

Ning

Revision history for this message
Jan Stránský (honzik) said :
#3

the number of threads should be 1 by default, but to be sure you can use

yade-trunk -j 1 yourScript.py

Jan

2012/11/29 ceguo <email address hidden>

> Question #215531 on Yade changed:
> https://answers.launchpad.net/yade/+question/215531
>
> Status: Answered => Open
>
> ceguo is still having a problem:
> Hi Jan,
>
> Thanks for the reply. I 'guess' NewtonIntegrator should be posed after
> PeriTriaxController, right? But I check some given example codes, I see
> someone puts NewtonIntegrator before the controller engine, which makes
> me confusing.
>
> How can I specify using only one core for YADE simulation?
>
> Ning
>
> --
> You received this question notification because you are a member of
> yade-users, which is an answer contact for Yade.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-users
> Post to : <email address hidden>
> Unsubscribe : https://launchpad.net/~yade-users
> More help : https://help.launchpad.net/ListHelp
>

Revision history for this message
ceguo (hhh-guo) said :
#4

Hi Jan,

I tried your suggestion, it seems the difference is not caused by multiple cores. The results are consistent but different for two computers.

Ning

Revision history for this message
Best Bruno Chareyre (bruno-chareyre) said :
#5

Is there exactly the same system installed on both computers? Else different versions of some libraries could maybe lead to different rounding errors (exactly the situation of multi-core runs)?

Revision history for this message
ceguo (hhh-guo) said :
#6

Hi Bruno,

Thanks. I see your point. The two systems are different in version. I will upgrade the system and see if there is still any difference.

Ning

Revision history for this message
ceguo (hhh-guo) said :
#7

Thanks Chareyre, that solved my question.

Revision history for this message
Bruno Chareyre (bruno-chareyre) said :
#8

Well, having different results is not bad in itself(*). Upgrading for this reason is overkilling but it's your time. ;)

(*) If it was bad, then which system would be giving the good result? The older one or the new one?!