Hi all,
I have been running a program where precision of doubles mean a lot to my program.
However due to some strange reason it seems like Xeon phi is rounding off a few bits(at 10^-8th bit) and this seems to be causing some instabilities to my model. A small round off error grows over my model over iteration of time step and my model fails to converge.
here is some sample differences in error.
Xeon phi value
4052003.87615914 -3800481.58877535
4743651.75216398 8579922.43342044 4677493.53261335
-1251355.38835838 -8704380.49549063 0.000000000000000E+000
xeon value(ideal values)
4052003.87615915 -3800481.58877535
4743651.75216399 8579922.43342044 4677493.53261335
-1251355.38835838 -8704380.49549063 0.000000000000000E+000
This small change over iterations grow and has made the model unable to converge.
I have tested the code without offload and works fine.
I am sure this is what causes the error, with this message from the program
POP Exiting...
POP_SolversChronGear: solver not converged
POP_SolverRun: error in ChronGear
POP_BarotropicDriver: error in solver
Step: error in barotropic
These models are very sensitive and require such precision. So how do I avoid this problem with offload.
Please help to force Xeon level precision on Xeon phi.
Thanks in advance