You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The manual Fortran implementation uses ssha%grid%subdomain%global%[nx|nx] to calculate the loop boundaries of each kernel while PSyclone generated PSy-layer uses ssha%grid%subdomain%internal%[xstop|ystop].
If I print them in a serial execution of 1024x1024, e.g.:
Implying that the manual version is doing an extra row and column of work. But final ua/uv checksums are not affected:
Implementation ua checksum uv checksum time/step
psyclone_generated gcc cpu 0.52670513E+02 0.57100321E+03 0.32245E+00
nemolite2d gcc cpu 0.52670513E+02 0.57100321E+03 0.19181E+00
I believe PSyclone does the right thing, but before making the change, @arporter can you confirm that this makes sense? and also has subdomain%global% the expected value or is there something that may be wrong in dl_esm_inf?
The text was updated successfully, but these errors were encountered:
@sergisiso I think that's right. global%nx/y should be the the total number of points in the dimension whereas internal%xstop is the upper bound for the internal/simulated points. I would expect the PSyclone version to be correct whereas the manual version is more likely to have (accidentally) got out of sync.
The checksum is I guess a fairly rough and ready guide but in my experience it is sufficient to show when things are right and when they're not. 12K steps is a lot! I never regularly run for that long so can't comment. For a small domain (~100x100) you've pretty much exercised all the physics by about 6K steps (i.e. incoming waves have reached the end and been reflected back).
The manual Fortran implementation uses
ssha%grid%subdomain%global%[nx|nx]
to calculate the loop boundaries of each kernel while PSyclone generated PSy-layer usesssha%grid%subdomain%internal%[xstop|ystop]
.If I print them in a serial execution of 1024x1024, e.g.:
I get:
Implying that the manual version is doing an extra row and column of work. But final ua/uv checksums are not affected:
I believe PSyclone does the right thing, but before making the change, @arporter can you confirm that this makes sense? and also has
subdomain%global%
the expected value or is there something that may be wrong in dl_esm_inf?The text was updated successfully, but these errors were encountered: