stfc / PSycloneBench

Various benchmarks used to inform PSyclone optimisations
BSD 3-Clause "New" or "Revised" License
6 stars 5 forks source link

MPI issues with manual DM nemolite2d #20

Closed arporter closed 4 years ago

arporter commented 5 years ago

In #17 @sergisiso reported a significant performance degradation in the MPI version run on 1 core compared to the serial version. He also reported that the correct solution is not obtained when running on e.g. 4 ranks. I suspect the latter problem is due to the T-mask not being set correctly along internal domain boundaries - something I fixed a while ago but might have been broken by a subsequent merge.

arporter commented 4 years ago

If I go back to 7409f9b857028ed847a3a18fa4e569407927f9b6 and build the associated dl_esm_inf and then the dm nemolite2d, then it works fine.

arporter commented 4 years ago

The halo-exchange tests pass OK in both versions of dl_esm_inf.

arporter commented 4 years ago

The problem was in the copy_field() routine of dl_esm_inf which was written to use tiling. However the tile bounds were not set correctly. Rather than dig into that I've simply disabled tiling for the moment and altered the routine to check whether tiling is enabled. This fix is in https://github.com/stfc/dl_esm_inf/pull/37.

arporter commented 4 years ago

The DM version now works correctly, as evidenced in #21.