これは・・・丸め誤差なんだろうか?

MPIである値を合計します。
call MPI_REDUCE(a,atmp,(略))
a=atmp
この後ループ数で割ったりした値はa'になったとします。その二乗はa'**2として。

MPI未使用プログラムでの値で求めた値がa',a'**2
MPI使用で1マシン動作では、同じ値をa'1とするとa'1=a',a'1**2=a'**2
MPI使用で2マシン動作では、同じ値をa'2とするとa'2=a',a'2**2≠a'**2
MPI使用で3マシン動作では、同じ値をa'3とするとa'3=a',a'3**2≠a'**2

REDUCEで集めて割った値は等しいのに、二乗すると誤差が出てくるとな。
MPI通信に問題があると思われるけど、二乗する前の値は等しくて、二乗すると誤差が出てくる。
これは、丸め誤差っていうの?っていうか、原因がよく分からん。


・・・。
分散処理したときの、和の順序が変わることによる丸め誤差のような気がしてきた。
どうすべorz