Different compilers can also produce different results because they order the operations differently.
Also note that with iterative methods such as Newton's method and linear iterative methods such as Krylov methods when the residual norms start to get small they may look very different with different configurations while the actual answers that are being converged to are quite similar. For example if one machine has SNES 0 1.2345 SNES 1 .23456 SNES 2 .003456 SNES 3 4.5678e-6 SNES 4 5.6789e-11 and another has SNES 0 1.2345 SNES 1 .23451 SNES 2 .003412 SNES 3 1.2345e-7 SNES 4 1.23456e-13 this is nothing to worry about. Barry On Aug 27, 2014, at 3:57 PM, Matthew Knepley <[email protected]> wrote: > On Wed, Aug 27, 2014 at 3:54 PM, Xiangdong <[email protected]> wrote: > Hello everyone, > > When I ran the same petsc codes on different clusters many times, one cluster > always produces the same results, while the other one varies in terms of > number of iterations for SNES and KSP convergence. If the problem is > ill-conditioned, the round-off errors may cause different number of > iterations to converge. However, what puzzles me is that the number of > iterations on one machine is always the same while the other varies. I use > same codes with same version of PETSc. The differences I can think about are > MPI implementations (mvapich2 vs openmpi), compiler (icc vs gcc) and the > network between the nodes. Could these factors cause these different > behaviors? > > Some machines (like BlueGene) have very consistent behavior, including the > ordering of communication operations, whereas > other machines do not. For ill-conditioned problems, this can make a real > difference. However, what this is telling you is that > your answer is not really any more meaningful than that spread. > > Matt > > Thank you. > > Best, > Xiangdong > > > > -- > What most experimenters take for granted before they begin their experiments > is infinitely more interesting than any results to which their experiments > lead. > -- Norbert Wiener
