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


Groups > comp.programming.threads > #1689

More information...

From aminer <aminer@toto.net>
Newsgroups comp.programming.threads, comp.programming
Subject More information...
Date 2013-06-30 15:11 -0700
Organization A noiseless patient Spider
Message-ID <kqpviu$k7c$1@dont-email.me> (permalink)

Cross-posted to 2 groups.

Show all headers | View raw


Hello,

There is some scalable FIFO queues there that are patented , the like 
the one with elimination and another one with Speculative Pairing...

Here is the one with elimination:

http://www.cs.tau.ac.il/~shanir/nir-pubs-web/Papers/SPAA2005.pdf

and here is the Speculative Pairing queue:

https://repository.ist.ac.at/124/


But those scalable queues are patented , so i think you have
to pay for them if you want to use them on your commercial project.


But my scalable and relaxed MPMC priority Queue is a freeware
and you can use it in your commercial project without paying anything.

Where can my scalable and relaxed MPMC priority Queue be useful ?

When for example you want to do something like a Threadpool that do 
parallel tasks without the need that the queue be strict FIFO, and you 
can find that in many applications that do parallel mathematical 
calculations or parallel mechanical or graphic calculations and  many 
parallel tasks... so you will reduce on those applications the S part in 
the Amdahl equation using my scalable and relaxed MPMC priority Queue.

The number of  consumer threads must be equal or greater to the number 
of queues that you  pass to the constructor and use many producer 
threads and you have to initialize first the Push() method with 
high(pqueue.long), look at how to do it inside the test1.pas example 
inside the zip file,   so that it become scalable.

The following have been added:

- You can give the following priorities to jobs:

LOW_PRIORITY
NORMAL_PRIORITY
HIGH_PRIORITY

- A queue for each worker thread and it uses work-stealing - for more 
efficiency -

- Enters in a wait state when there is no job in the queue - for more 
efficiency -

- Uses O(1) complexity on enqueue and O(3) worst case complexity on dequeue.


You can download scalable and relaxed MPMC priority Queue version 1.02 from:

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



Thank you,
Amine Moulay Ramdane.





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


Thread

More information... aminer <aminer@toto.net> - 2013-06-30 15:11 -0700
  Re: More information... aminer <aminer@toto.net> - 2013-06-30 16:00 -0700

csiph-web