Saturday, August 8, 2015

Digest for comp.programming.threads@googlegroups.com - 6 updates in 4 topics

Ramine <ramine@1.1>: Aug 07 05:26PM -0700

Hello...
 
 
If you ask me a question like:
 
Amine, is there any new parallel Skiplist algorithm that is more
efficient than your conccurrent algorithm that uses a distributed
read-writer mutex ?
 
I have thought more, and i have come with a new Parallel Skiplist
algorithm that is scalable on a read mostly workload, this algorithm
uses only an mfence on the reader side, that's really cool ! and it
elevates the weakness of the distributed reader-writer mutex that
becomes slower and slower on the writer side with more an more threads,
in my new concurrent Skiplist algorithm i am using one SeqlockX
between the search() and the insert() methods , you will find my
SeqlockX algorithm that avoids livelock when there is many writers here:
 
https://sites.google.com/site/aminer68/scalable-seqlockx
 
and i am also using one distributed reader-writer mutex between the
delete() and the search() methods...
 
This new algorithm is faster than my previous concurrent SkipList
algorthm, but i have made a scalability prediction for my new algorithm
and i have noticed that since the serial part of the Amdahl's law of the
writer side is a little bit expensive since the average search in a
Skiplist can become a little bit expensive, so my calculation has proved
that you will not get much improvement with this new algorithm compared
to my previous algorithm, you will get around 3x improvement max, so i
have finally decided to not implement my new concurrent SkipList
algorithm, so i will stay with my current concurrent SkipList algorithm
that gives a decent scalability.
 
 
 
Thank you,
Amine Moulay Ramdane.
bleachbot <bleachbot@httrack.com>: Aug 07 08:17PM +0200

bleachbot <bleachbot@httrack.com>: Aug 07 10:48PM +0200

bleachbot <bleachbot@httrack.com>: Aug 07 11:23PM +0200

Ramine <ramine@1.1>: Aug 07 04:48PM -0700

Hello,
 
 
As you have noticed i have implemented a concurrent Skiplist,
the interface of my concurrent Skiplist is very fexible,
and as you have noticed i am using one distributed reader-writer mutex
to implement my concurrent algorithm, so i am not using RCU or SMR or
VZoom, so i have done a scalability prediction for this algorithm,
and i have noticed that on a 32 NUMA nodes computer and 50 millions
of read , write and delete requests, with a workload of 0.5% of writes
and ~99% of reads, it will give a throughput of 50 millions request per
10 seconds , that's cool.
 
On a non-NUMA Quadcore it will give 4X scalability.
 
You can download my new concurrent Skiplist version 1.02 from:
 
https://sites.google.com/site/aminer68/concurrent-skiplist
 
 
 
Thank you,
Amine Moulay Ramdane.
Ramine <ramine@1.1>: Aug 07 02:20PM -0700

Hello,
 
 
A concurrent SkipList version 1.02
 
I have updated my concurrent Skiplist , i have just corrected a bug
inside the next() method, now when you want to call next() method to get
a sorted list, please call the Enter() method before getting the sorted
list with the next() method and call the Leave() method after you get
the sorted list, please look at how to do it by looking at the test
examples inside the zip file.
 
Authors: Amine Moulay Ramdane (Based on Duncan Murdoch's sequential
Skiplist)
 
 
Description:
 
I propose a new concurrent skip list algorithm distinguished by a
combination of simplicity and scalability. This parallel algorithm makes
the search() method scalable and it makes the insert() method of a
decent throughput. This parallel algorithm employs one distributed
reader-writer mutex that makes the search() method scales to 250X on
NUMA architecture and on multicores, unlike some other concurrent skip
list algorithms, this algorithm preserves the skiplist properties at all
times, which facilitates reasoning about its correctness. Experimental
evidence shows that this parallel algorithm performs well.
 
 
You can download my concurrent Skiplist version 1.02 from:
 
https://sites.google.com/site/aminer68/concurrent-skiplist
 
 
 
 
Thank you,
Amine Moulay Ramdane.
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to comp.programming.threads+unsubscribe@googlegroups.com.

No comments: