Dear all,

Thanks for all your replies.

I think the difference of 0.0001eV is very big. I wonder is this relevant to 
the presion setting in the precision.F file? For single precision use a 
selected_real_kind(6,30) kind and for double precision use a 
selected_real_kind(14,100) kind. I now do not know the energies are all 
relevant to the double precision kind data. If they are use some single 
precision kind data, the difference seems to be understandable because what Ray 
has said. But if the energies are all relevant to the double precision kind 
data, if there is a difference on the fourth decimal, it need  hundreds of 
thousand accumulation to achive such a differece.

Best regards

Guangping

2012-03-25



Guangping Zhang



发件人:Ray Sheppard
发送时间:2012-03-25 09:53
主题:Re: [SIESTA-L] results denpend on the number of core using
收件人:"siesta-l"<[email protected]>
抄送:

Lets try again.

On 3/24/2012 9:43 PM, Ray Sheppard wrote: 
Hi Guangping, Nick and everyone,
  I was waiting for someone to write in but I thought I might toss in my two 
cents.  First, in the
data you sent, you had about 7 or 8 digits of precision in your calculations.  
The number system
in a computer is a closed set.  At some point you go from a very large number 
to a very small
number by adding a positive value.  So, computers use approximations by 
definition.  IEEE 754-2008
defines required precision standards.  We will skip over the whole, you can not 
achieve greater
precision than your least precise input part and the Numerical Analysis, how 
these these precisions
propagate through a calculation part.  A single precision (32-bit floating 
point number) has about 7 and
a quarter digits of precision according to the standard.  Beyond that, you will 
need to understand how
error terms propagate as they are combined.  A particular processor might have 
a term E1f.   12*E1f
is not the same as the sum of the series X=1->12 EXf  where each X is on a 
unique processor.  For numbers
of X less than about a thousand, this is usually negligible.  In other words, 
the sum of the differences in
the error functions falls at least one digit below the guaranteed precision.  
So, in short, the fact that your
computer will happily print out a bunch of lower significant digits, that does 
not mean they have any meaning.
I hope this is helpful.
                        Ray


On 3/24/2012 6:15 PM, Nick Papior Andersen wrote: 
As well as reductions in parallel should never be expected to yield the exact 
same result every time. There are numerical rounding differences when not 
enforcing the same reduction scheme every time, which is the case when using 
MPI-library reductions. I will not argue whether it can or can not contribute 
to an error of that order, but the fact that your convergence path is not 
similar I would not expect the exact same result, after all you are targeting a 
tolerance, not an "exact" solution. 


But also as Huan notes, is it the same executable?


Nick


2012/3/24 Huan Tran <[email protected]>

I think 0.001 eV is a small quantity, and it may come from different library 
when you run 1 core (serial) and 12 core (parallel). 





On Sat, Mar 24, 2012 at 5:50 AM, Guangping Zhang <[email protected]> wrote:

Dear siesta users:

I have now encounter a question: the results differ when using different number 
of core to parallel.

1 core:
siesta:  124   -33928.6003   -33928.6031   -33928.6366  0.0002 -4.1261
siesta:  125   -33928.6004   -33928.6012   -33928.6346  0.0001 -4.1251
siesta:  126   -33928.6003   -33928.6009   -33928.6344  0.0001 -4.1258

siesta: E_KS(eV) =           -33928.6012

siesta: E_KS - E_eggbox =    -33928.6012

12 core:

siesta:  123   -33928.6004   -33928.6064   -33928.6398  0.0003 -4.1246
siesta:  124   -33928.6003   -33928.6026   -33928.6360  0.0001 -4.1257
siesta:  125   -33928.6003   -33928.6018   -33928.6352  0.0001 -4.1256
siesta:  126   -33928.6004   -33928.5996   -33928.6331  0.0001 -4.1253

siesta: E_KS(eV) =           -33928.6001

siesta: E_KS - E_eggbox =    -33928.6001

The E_KS differs 0.001 eV. I think it is significant.  I think the number of 
core using to paralle only affect the speed. The results should be the same.  
Or there is something I am missing?

And I have another question: when I do the geometry optimization, which energy 
is used to calculated the force? And when I do molecular dynamics, which energy 
is used for the force?

I think the KS energy of a single point DFT calculation and the KS  energy of a 
molecular dynamics should be the same for the same structure. Am I right?

Any suggestions will be regarded.

Best

Guangping

2012-03-24



Guangping Zhang




-- 
Regards
Huan Tran
Department of Physics 
University of Basel, Switzerland
Email: [email protected]

Responder a