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


Groups > comp.programming.threads > #2587

Re: So i will explain to you what is exactly my scalable MLock algorithm..

From Ramine <ramine@1.1>
Newsgroups comp.programming.threads
Subject Re: So i will explain to you what is exactly my scalable MLock algorithm..
Date 2014-08-29 15:29 -0700
Organization A noiseless patient Spider
Message-ID <ltqkaq$vpq$5@dont-email.me> (permalink)
References <ltqk61$vpq$2@dont-email.me>

Show all headers | View raw


Hello,


Scalable lock that is FIFO fair and starvation-free version 1.2

Authors: Amine Moulay Ramdane.


Description:

A node based Lock that is scalable, FIFO fair and starvation-free.

- Discovered by Amine Moulay Ramdane

- This lock is scalable

- It has the same space requirement as the scalable MCS lock

- Doesn't require a local "queue node" to be passed in as a parameter 
as is doing the MCS and CLH locks.

- Spins only on local locations on a cache-coherent machine

- And it's fast.

Please read this:

A bigger problem with the MCS lock is its API. It requires a second 
structure to be passed in addition to the address of the lock. The 
algorithm uses this second structure to store the information which 
describes the queue of threads waiting for the lock. Unfortunately, most 
code written using spinlocks doesn't have this extra information, so the 
fact that the MCS algorithm isn't a drop-in replacement to a standard 
spin lock is a problem.

An IBM working group found a way to improve the MCS algorithm to remove 
the need to pass the extra structure as a parameter. Instead, on-stack 
information was used instead. The result is the K42 lock algorithm:

Unfortunately, the K42 algorithm has another problem. It appears that it 
may be patented by IBM. Thus it cannot be used either. (Without perhaps 
paying royalties to IBM.)

So you have to know that my scalable MLock doesn't require a local 
"queue node" to be passed in as a parameter  as is doing the MCS and CLH 
locks, my scalable MLock doesn't require any parameter to be passed, 
just call the Enter() and Leave() method and that's all.

Please take a look a the test.pas Object Pascal demo inside the zipfile, 
compile and run it...


You can download my scalable MLock from:

https://sites.google.com/site/aminer68/scalable-mlock



Language: FPC Pascal v2.2.0+ / Delphi 7+: http://www.freepascal.org/

Operating Systems: Windows, Mac OSX , Linux , Unix...


Required FPC switches: -O3 -Sd -dFPC -dFreePascal

-Sd for delphi mode....

Required Delphi switches: -$H+ -DDELPHI

{$DEFINE CPU32} and {$DEFINE Windows32} for 32 bit systems


{$DEFINE CPU64} and {$DEFINE Windows64} for 64 bit systems





Amine Moulay Ramdane.


Back to comp.programming.threads | Previous | Next — Previous in thread | Find similar | Unroll thread


Thread

So i will explain to you what is exactly my scalable MLock algorithm.. Ramine <ramine@1.1> - 2014-08-29 15:27 -0700
  Re: So i will explain to you what is exactly my scalable MLock algorithm.. Ramine <ramine@1.1> - 2014-08-29 15:29 -0700

csiph-web