stellaGK / stella

stella is a flux tube gyrokinetic code for micro-stability and turbulence simulations of strongly magnetised plasma.
https://stellagk.github.io/stella/
Other
22 stars 10 forks source link

Non blocking scatter and gather #96

Open SStroteich opened 2 years ago

SStroteich commented 2 years ago

Right now the redistribution function uses blocking send and receive commands. This makes the communication very inefficient and should be fixed by using the non blocking commands in redistribute.f90.

d7919 commented 2 years ago

Yes, our experience in GS2 is that swapping for non-blocking communications (and ideally persistent versions of this) can give a good performance improvement in most cases. It's possible on some systems for some problems that posting all send/receive calls at once can cause hardware contention issues which degrade performance but such instances are rare. It may be relatively simple to port the changes from GS2/AGK here?