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


Groups > comp.programming.threads > #2090

About RWLockX

From aminer <aminer@toto.net>
Newsgroups comp.programming.threads, comp.programming
Subject About RWLockX
Date 2014-03-15 19:52 -0700
Organization albasani.net
Message-ID <lg2p3e$9mq$1@news.albasani.net> (permalink)

Cross-posted to 2 groups.

Show all headers | View raw


Hello,


We have to be smart please, so follow with me please...

I wrote before:

"I have benchmarked more all the variants of my scalable RWLock 3.04,
and i have noticed that my LW_RWLockX a lightweight version that uses
a lightweight eventcount and that is starvation-free scales better  even 
at 1% to 2% of writes, my RWLockX scales at no more than 0,1% of  writes."

So please look inside my scalable RWLock zip file , inside RWLockX.pas
source code and you will notice that i am using my SemaMonitor on
the writer side, i have said above that my RWLockX scales at no more 
than 0.1% of writes, that's not completly true, this is true only
if you are using multiple writers threads, but if you want it to be 
scalable at more than 0.1% of writes and if you have using a a Quad core 
processor you have to start for example 5 threads one server thread for 
the writers and 4 servers threads for the readers , and dispatch the 
datas in a client server manner for example using FIFO queues to the 
writer threads and to the readers threads, this is how you will make my 
RWLockX scalable at much more than 0.1% of writes. This is possible 
cause since you are using one writer thread as a server of all the 
client writers you will lower more the cache-coherence traffic and you 
will use only the local L2 cache for example etc...

So hope you have understood what i am saying to you cause it's important..

The same idea above can be applied to my scalable LW_RWLockX and
all the other variants of my scalable RWLock inside the zip file

If you want to look at the source code of all the variants of my 
scalable RWLock you have to know the following:


1- My RWLockX is scalable and 100% stavation-free and it uses less CPU 
ressource cause it does not use spin-wait, when you see the "X" at
the end of the name this will tell you that it's 100% starvation-free


2- My LW_RWLockX is a lightweight version that is scalable and it's
100% starvation-free and it uses spin-wait...


3- My RWLock is scalable and it's not starvation-free and it uses less 
CPU ressource cause it does not use spin-wait.


4-My LW_RWLock is a lightweight version that is scalable and
it's not starvation-free and it uses spin-wait..


All the variants of my scalable RWLock are stable now,
and portable to Linux, MacOSX and Windows, so hope you will
take a look at them inside the zipfile.



Thank you,
Amine Moulay Ramdane.



Back to comp.programming.threads | Previous | NextNext in thread | Find similar


Thread

About RWLockX aminer <aminer@toto.net> - 2014-03-15 19:52 -0700
  Re: About RWLockX aminer <aminer@toto.net> - 2014-03-15 19:55 -0700
  Re: About RWLockX aminer <aminer@toto.net> - 2014-03-16 16:38 -0700

csiph-web