Kentaro
Thanks for rewriting the code in Fortran 90! The Fortran 77 parts of the Einstein Toolkit should slowly be converted to Fortran 90 anyway.
I notice that you made several changes to the code when converting: (1) You introduce a local array var, which is a copy of the input variable (2) You rewrote the do loops with array expressions
Both are not good for performance. The former is certainly slowing things down, the second complicates an OpenMP parallelisation and makes the code more difficult to read. I am therefore hesitant to apply these. Did you try making only one of these changes, to see whether this would suffice?
The document to which you pointed contains also the suggestion to use the option -fp-model-precise. Did you try this?
As a side remark, in Fortran 90 you can also use a select case statement instead of if statements to choose the dissipation order.
-erik
On Mon, Mar 4, 2013 at 4:35 PM, Kentaro Takami kentaro.takami@aei.mpg.dewrote:
Hi,
Finally, I concluded that the comment ( http://software.intel.com/sites/default/files/article/164389/fp-consistency-... ) which Ian suggested, is right, that is, "the random results is caused by variations in the starting address and alignment of the global stack".
So, in order to avoid this problems, I rewrote from "apply_dissipation.F77" to "apply_dissipation.F90" using Fortran 90 style. (I'm attaching the modified files.) Then, we can avoid random results at least my test environments.
If you don't have any objection, could you commit these change to repository?
Kentaro TAKAMI
Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users