Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #118043

Re: Interesting proposal...

From "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com>
Newsgroups comp.lang.c++
Subject Re: Interesting proposal...
Date 2023-12-07 17:28 -0800
Organization A noiseless patient Spider
Message-ID <uktrfh$1ffeg$1@dont-email.me> (permalink)
References <ukr5o0$vo3f$1@dont-email.me> <uktibc$1eci9$1@dont-email.me>

Show all headers | View raw


On 12/7/2023 2:52 PM, jseigh wrote:
> On 12/6/23 20:05, Chris M. Thomasson wrote:
>> Context:
>>
>> https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0233r5.pdf
>>
>> SMR in std C++? Humm...
> 
> It will be based on the one in Meta's folly library.  Based on a quick 
> scan of the code I think it will use a global membar if that is 
> available.  Looks like it will do some tracing collection for acyclic 
> data structures.

I think so, ala sys_membarrier()...? Afaict, perhaps akin to a call to 
FlushProcessWriteBuffers:

https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-flushprocesswritebuffers

Active vs passive quiescent state detection schemes. Active being 
"issuing" an explicit request for quiescence. Passive akin to detecting 
quiescent states...

Also, btw, Joe, it has been a while since we have conversed on Usenet! 
We have had some hyper interesting conversations in the past, indeed. :^)

So nice to hear from you. :^)


> I (finally) got around to writing the proxy version of it here 
> https://github.com/jseigh

I need to check it out, big time! Unfortunately, I am a bit busy right 
now. However, you just made me think of that most interesting SMR+RCU 
hybrid of yours. :^)

I know I am going to have a good time when I read your code, Joe. :^)


> smrproxy - hazard pointer based proxy collector
> arcproxy - atomic reference counted proxy collector
> proxytest - timing tests
> atomic-ptr-plus - obsolete, not updated and missing some files during 
> the sourceforge to google to github moves.
> 
> Some timing comparisons in my blog here 
> https://threadnought.wordpress.com/2023/06/09/smrproxy-timing-comparisons/

Excellent. Fwiw, remember my single word proxy collector over here?

https://groups.google.com/g/lock-free/c/X3fuuXknQF0

It looks like some of your comments got deleted from that post? Ahhh, it 
was a while back. Here is a link to raw text:

pastebin.com/raw/f71480694
(fwiw, my proxy code using Relacy Race Detector)


> arcproxy looks good compared to rwlock but compared to smrproxy it looks 
> really bad.  The rcu timings are simulated.

Yup! IIRC, it's damn hard to compete with your SMR-RCU hybrid, or RCU 
for that matter... I remember first learning about your DWCAS based 
atomic pointer way back on comp.programming.threads. It is nice to hear 
from you again. :^)

Fwiw, check out this rwlock of mine:

https://vorbrodt.blog/2019/02/14/read-write-mutex

Also, I remember you did a really __neat__ rw-spinlock way back on 
comp.programming.threads. IIRC, The algorithm was rather elegant, 
indeed. Could handle overflow into fields...


> I've been considering creating an interface for all the different 
> schemes.  Not sure if it would be a c++ abstact class or a rust trait, 
> neither are my main languages. But then I would need a shared data 
> structure that would utilize it.  I did figure out how to do a lock-free 
> hashmap (w/ per bucket linked lists) that can do lock-free resizing but 
> I found Cliff Click has one that's probably faster (because no linked 
> lists).  But all that's on back burner for now.

Indeed. I will find some more time, maybe late tonight buddy. Fwiw, a 
while back, I had an API that was fairly “generic” in a sense... I used 
it for testing purposes so I could switch up implementations rather 
easily. It was an attempt at a std proxy collector interface for my 
testing purposes. Wow, how times flies! I will get back to you here. 
Need to get some work done wrt plotting some of my fractals...

https://paulbourke.net/fractals/multijulia
(Paul was kind enough to write about some of my work.)

[...]

Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Interesting proposal... "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-12-06 17:05 -0800
  Re: Interesting proposal... Lynn McGuire <lynnmcguire5@gmail.com> - 2023-12-07 00:04 -0600
    Re: Interesting proposal... Bonita Montero <Bonita.Montero@gmail.com> - 2023-12-07 07:57 +0100
      Re: Interesting proposal... "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-12-08 12:17 -0800
        Re: Interesting proposal... Bonita Montero <Bonita.Montero@gmail.com> - 2023-12-09 19:11 +0100
          Re: Interesting proposal... "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-12-09 12:54 -0800
    Re: Interesting proposal... "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-12-14 21:59 -0800
  Re: Interesting proposal... jseigh <jseigh_es00@xemaps.com> - 2023-12-07 17:52 -0500
    Re: Interesting proposal... "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-12-07 17:28 -0800
      Re: Interesting proposal... "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-12-08 20:48 -0800
        Re: Interesting proposal... "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-12-08 20:51 -0800
    Re: Interesting proposal... "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2023-12-09 22:54 -0800

csiph-web