Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

scalable RWLock

6 views
Skip to first unread message

aminer

unread,
Oct 21, 2013, 4:26:31 PM10/21/13
to

Hello again my dear FreePascal and Lazarus community..


Question:

Amine, and what about your scalable RWLock that you have implemented ?

here it is:

http://pages.videotron.com/aminer/rwlock1.html


You have to understand something, if
you take a look at OmniThread from Gabr that was implemented for the
Delphi community , here it is:

http://otl.17slon.com/


If you download the zipfile of OmniThread
and you take a look at the lockfree RWLock that Gabr wrote and that is
called TMREW, you will notice that this RWLock is using a CAS on a
global variable, hence this is expensive , so if
you want TMREW to scale, the time of the RWLock's READ section must be
bigger that the time to
execute a those CASes on a global variable with cache misses, and that's
not good, so this
is why i have implemented my scalable RWLock that scales even if the
RWLOCK's READ section is small.

You can dowload my scalable RWLock from:

http://pages.videotron.com/aminer/rwlock1.html


Thank you,
Amine Moulay Ramdane,.

aminer

unread,
Oct 21, 2013, 4:46:38 PM10/21/13
to

Hello,

I have to be more precise...

I said that the TMREW from Omnithread
is not good cause the time of the TMREW reader section must be bigger
that the time to execute a those CASes on a global variable with cache
misses,
more than that since the TMREW is using
a CAS on a global variable on the reader side also, hence it will
generate too much coherence-traffic under contention , so this why TMREW
from Omnithread is not scalable. But my scalable RWLock is scalable and
it minimizes efficiently the cache-coherence traffic.


You can download my scalable RWLock from:

http://pages.videotron.com/aminer/



Thank you,
Amine Moulay Ramdane.



aminer

unread,
Oct 21, 2013, 4:53:46 PM10/21/13
to

I correct some typos, please read again...

Hello,

I have to be more precise...

I said that the TMREW from Omnithread
is not good cause the time of the TMREW's reader section must be bigger
than the time to execute those CASes on a global variable with cache misses,
more than that since the TMREW is using
a CAS on a global variable on the reader side also, hence it generates
too much cahe-coherence traffic under contention , so this why TMREW
0 new messages