[Chapel Merge] Shared Memory Concurrent Map (#16704)

Branch: refs/heads/main
Revision: 4031b29
Author: dlongnecke-cray
Link: Unavailable
Log Message:

Merge pull request #16704 from dgarvit/map

Shared Memory Concurrent Map (#16704)

Adds a fast, scalable, fine-grained concurrent map to the package
modules. Its API attempts to match the Map standard module, and
may be suitable as a replacement implementation or as reference
material for future efforts.

This effort has been long in the undertaking. A very special thanks
to @dgarvit for continuing to work on this PR and prepare it for
merging.

Thanks to @dgarvit, @LouisJenkinsCS!

Reviewed by @dlongnecke-cray.

TESTING

  • [x] library/packages/ConcurrentMap on linux64 and darwin
    (w/ COMM=none and COMM=gasnet)
  • [x] Viewed docs locally

FUTURE WORK

  • Explore using ConcurrentMap as a drop-in replacement for Map

  • Get ConcurrentMap to work with owned and shared

    Modified Files:
    A modules/packages/ConcurrentMap.chpl
    A test/library/packages/ConcurrentMap/testAddSet.chpl
    A test/library/packages/ConcurrentMap/testAddSet.good
    A test/library/packages/ConcurrentMap/testClear.chpl
    A test/library/packages/ConcurrentMap/testClear.good
    A test/library/packages/ConcurrentMap/testContains.chpl
    A test/library/packages/ConcurrentMap/testContains.good
    A test/library/packages/ConcurrentMap/testEquality.chpl
    A test/library/packages/ConcurrentMap/testEquality.good
    A test/library/packages/ConcurrentMap/testExtend.chpl
    A test/library/packages/ConcurrentMap/testExtend.good
    A test/library/packages/ConcurrentMap/testGetRemove.chpl
    A test/library/packages/ConcurrentMap/testGetRemove.good
    A test/library/packages/ConcurrentMap/utilFunctions.chpl
    A test/library/packages/ConcurrentMap/utilFunctions.notest
    M modules/Makefile

    Compare: Comparing 0477315b52ee...4031b292b584 · chapel-lang/chapel · GitHub