NCAR / icar

The Intermediate Complexity Atmospheric Research model (ICAR)
MIT License
72 stars 53 forks source link

Buffered domain exchange for faster memory passing #151

Closed d-reynolds closed 1 year ago

d-reynolds commented 1 year ago

TYPE: enhancement/optimization

KEYWORDS: Speed, halo_exchange, images

SOURCE: Dylan Reynolds, SLF (dylan.reynolds@slf.ch)

DESCRIPTION OF CHANGES: Coarrays tends to have more bandwidth in its memory passing as you ask for larger amounts of data to be exchanged at a single time. Additionally, there is some latency inherent in each call to Coarrays. Thus, total calls to coarray exchanges has been reduced and the amount of data passed per exchange has been increased by buffering all exchangeable variables into one array and exchanging this.

gutmann commented 1 year ago

@d-reynolds can we close this (for now) since it seems further testing has shown this doesn't help as much as expected (and slows down some cases I think?) or is this something you still wanted to advance as an option in case it is useful on another machine / compiler / case?