[Users] bug in Dissipation thorn?
schnetter at cct.lsu.edu
Mon Mar 4 20:27:46 CST 2013
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.
On Mon, Mar 4, 2013 at 4:35 PM, Kentaro Takami <kentaro.takami at aei.mpg.de>wrote:
> Finally, I concluded that the comment
> 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
> Kentaro TAKAMI
> Users mailing list
> Users at einsteintoolkit.org
Erik Schnetter <schnetter at cct.lsu.edu>
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Users