[Chapel Merge] Improve --cache-remote for RA

Branch: refs/heads/master
Revision: 6b4b5b9
Author: mppf
Log Message:

Merge pull request #16379 from mppf/cache-fix-ra

Improve --cache-remote for RA

For https://github.com/Cray/chapel-private/issues/1267

Before this PR, the local data structure manipulation in --cache-remote
was increasing in time with the number of locales for a random access
benchmark. Additionally I observed problems with top_entries not being
used appropriately (too few actually used, evictions causing evictions
all over) as well as core dumps with high numbers of simulated locales.

See the PR message for a graph showing the increasing time per operation
and the effect of this PR in a synthetic benchmark.

This PR improves RA performance at 512 nodes (but does not completely
resolve the performance difference) as these RA performance numbers at
512 nodes show:

  • no cache: 3.18017 3.1931 3.2043 GUPs
  • ra --cache-remote master: 2.6293 2.70452 2.70715 GUPs
  • ra --cache-remote pr: 2.84247 2.86472 2.91689 GUPs

Reviewed by @gbtitus - thanks!

  • [x] full local testing
  • [x] full local gasnet testing

Modified Files:
A test/runtime/ferguson/cache-remote-mock-tests/COMPOPTS
A test/runtime/ferguson/cache-remote-mock-tests/NUMLOCALES
A test/runtime/ferguson/cache-remote-mock-tests/README
A test/runtime/ferguson/cache-remote-mock-tests/SKIPIF
A test/runtime/ferguson/cache-remote-mock-tests/mock-double-ra.chpl
A test/runtime/ferguson/cache-remote-mock-tests/mock-double-ra.execopts
A test/runtime/ferguson/cache-remote-mock-tests/mock-double-ra.good
A test/runtime/ferguson/cache-remote-mock-tests/mock-double-ra.missesA.good
A test/runtime/ferguson/cache-remote-mock-tests/mock-double-ra.missesB.good
A test/runtime/ferguson/cache-remote-mock-tests/mock-ra-perf.chpl
A test/runtime/ferguson/cache-remote-mock-tests/mock-ra-perf.execopts
A test/runtime/ferguson/cache-remote-mock-tests/mock-ra-perf.good
A test/runtime/ferguson/cache-remote-mock-tests/mock-ra-perf.graph
A test/runtime/ferguson/cache-remote-mock-tests/mock-ra-perf.perfkeys
A test/runtime/ferguson/cache-remote-mock-tests/mock-ra.chpl
A test/runtime/ferguson/cache-remote-mock-tests/mock-ra.execopts
A test/runtime/ferguson/cache-remote-mock-tests/mock-ra.good
M runtime/include/chpl-cache.h
M runtime/src/chpl-cache.c

Compare: https://github.com/chapel-lang/chapel/compare/5bc81d665641...6b4b5b9af8cd