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


Groups > comp.programming.threads > #2189 > unrolled thread

Concurrent FIFO queue version 2.0

Started byaminer <aminer@toto.net>
First post2014-04-18 22:13 -0700
Last post2014-04-18 22:13 -0700
Articles 1 — 1 participant

Back to article view | Back to comp.programming.threads


Contents

  Concurrent FIFO queue version 2.0 aminer <aminer@toto.net> - 2014-04-18 22:13 -0700

#2189 — Concurrent FIFO queue version 2.0

Fromaminer <aminer@toto.net>
Date2014-04-18 22:13 -0700
SubjectConcurrent FIFO queue version 2.0
Message-ID<lism2s$er3$1@news.albasani.net>
Hello,


A concurrent FIFO Queue version 2.0


Authors: Amine Moulay Ramdane.


Description:

A concurrent FIFO queue that satisfies many requirements: it is FIFO 
fair on the push() side and lockfree on the pop() side, it uses only an 
atomic increment on the push() side and propotional backoff on the 
push() to optimize it more on the push() side and it uses a CAS on the 
pop() side , and it minimizes efficiently the cache-coherence traffic 
and it is energy efficient on the pop() side: when there is no items in 
the queue it will not spin-wait , but it will block and wait on my 
SemaMonitor, this concurrent FIFO queue is limited to 1000 threads on 
the push() side, if you want to higher that , just modify the "margin" 
constant in the source code. This concurrent FIFO queue  gives a 
throughput of 3.2 millions of transactions  on my 2.4 GHz Quadcore, 
that's cool and that's  a decent throughtput .

Please look more information here: Concurrent FIFO queue.

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


You can download my concurrent FIFO queue from:

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


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....

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

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



Thank you,
Amine Moulay Ramdane.

[toc] | [standalone]


Back to top | Article view | comp.programming.threads


csiph-web