• "We Make a std::shared_mutex 10 Times Faster" by AlexeyAB

    From Lynn McGuire@21:1/5 to All on Fri Dec 17 16:20:22 2021
    "We Make a std::shared_mutex 10 Times Faster" by AlexeyAB

    https://www.codeproject.com/Articles/1183423/We-Make-a-std-shared-mutex-10-Times-Faster

    "This article details the atomic operations and C++11 memory barriers
    and the assembler instructions generated by it on x86_64 CPUs."

    Wow, that is detailed.

    Lynn

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Chris M. Thomasson@21:1/5 to Chris M. Thomasson on Fri Dec 17 23:01:52 2021
    On 12/17/2021 10:49 PM, Chris M. Thomasson wrote:
    On 12/17/2021 2:20 PM, Lynn McGuire wrote:
    "We Make a std::shared_mutex 10 Times Faster" by AlexeyAB

    https://www.codeproject.com/Articles/1183423/We-Make-a-std-shared-mutex-10-Times-Faster


    "This article details the atomic operations and C++11 memory barriers
    and the assembler instructions generated by it on x86_64 CPUs."

    Wow, that is detailed.

    Need to read it, however, for some reason, it seems like distributed spinlocks... I remember an implementation of something called an MLock,
    but I cannot find the damn paper right now! Basically each thread that
    needed to wait would not interfere with other threads wrt false sharing.
    Each thread would wait on its own cache line.

    Iirc, this just might be the paper:

    http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.48.6490

    https://groups.google.com/g/comp.arch/c/aLVoxdQdRac/m/VFodX7eRPVcJ

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Chris M. Thomasson@21:1/5 to Lynn McGuire on Fri Dec 17 22:49:18 2021
    On 12/17/2021 2:20 PM, Lynn McGuire wrote:
    "We Make a std::shared_mutex 10 Times Faster" by AlexeyAB

    https://www.codeproject.com/Articles/1183423/We-Make-a-std-shared-mutex-10-Times-Faster


    "This article details the atomic operations and C++11 memory barriers
    and the assembler instructions generated by it on x86_64 CPUs."

    Wow, that is detailed.

    Need to read it, however, for some reason, it seems like distributed spinlocks... I remember an implementation of something called an MLock,
    but I cannot find the damn paper right now! Basically each thread that
    needed to wait would not interfere with other threads wrt false sharing.
    Each thread would wait on its own cache line.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)