| comp.programming.threads@googlegroups.com | Google Groups | |
| Unsure why you received this message? You previously subscribed to digests from this group, but we haven't been sending them for a while. We fixed that, but if you don't want to get these messages, send an email to comp.programming.threads+unsubscribe@googlegroups.com. |
| Ramine <ramine@1.1>: Nov 22 06:31PM -0800 Hello, Another fast concurrent FIFO Queue and a fast concurrent priority FIFO Queue version 1.0, they are waitfree on the push() side and lockfree on the pop() side. Authors: Based on Dmitry Vyukov concurrent FIFO queue Description: A fast concurrent FIFO queue and a fast concurrent priority FIFO queue that satisfy many requirements: they have more parallelism than the two locks algorithm, they are waitfree and starvation-free and FIFO fair on the push() side and they are lockfree on the pop() side, and they minimizes efficiently the cache-coherence traffic and they are energy efficient on the pop() side when you set the wait parameter to true in the construtor: when there is no items in the queue they will not spin-wait , but they will block wait on my SemaMonitor, and when the wait parameter of the constructor is set to false they uses only an atomic increment on the push() side and a CAS on the pop() side, so they are fast. You have 3 options for setting the kind of locks, just look inside defines.inc , if you want to set it for my scalable lock called MLock just uncomment the option MLock inside defines.inc, if you want to set it for Ticket Spinlock just uncomment the option TicketSpinlock ,If you want to set it for Spinlock just uncomment the option Spinlock, the Spinlock scaled better even if the number of threads are greater than the number of cores, the TicketSpinlock and MLock don't scale well when the number of threads are greater than the number of cores, the Ticket Spinlock and scalable MLock are optimal when the number of threads are equal to the number of cores, and when the wait parameter of the constructor is false it scales even if the number of threads are greater than the number of cores. The size of the queue must be passed to the constructor and it must be a power of 2. You an download it from: https://sites.google.com/site/aminer68/conccurent-fifo-queue-4 Language: FPC Pascal v2.2.0+ / Delphi 7+: http://www.freepascal.org/ Operating Systems: Windows, Mac OSX , Linux... 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 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:
Post a Comment