Open jhh67 opened 2 years ago
After giving this some thought the difference between a FAMO implemented with an AM and an AMO is the AMO sets the "done" flag via PUT whereas the FAMO does it via the AM. I did an experiment in which I also set the AMO "done" flag via an AM and bingo, the performance of FAMO and AMO are pretty much the same:
FAMO 3.03702 0.00329271
AMO 3.03908 0.00329047
This was hacked up for the experiment, I'll do a proper implementation.
@ronawho measured the performance of fetching vs. non-fetching AMOs on EFA and got the following results.
Both types of AMOs on EFA are implemented using AMs. In the FAMO case, the result is returned by injecting a result AM that writes the result and sets the "done" flag, so it doesn't make sense that a FAMO would be faster than an AMO.