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


Groups > comp.programming.threads > #2032

Threadpool with priorities version 1.54

From aminer <aminer@toto.net>
Newsgroups comp.programming.threads, comp.programming
Subject Threadpool with priorities version 1.54
Date 2013-12-21 12:16 -0800
Organization albasani.net
Message-ID <l94id6$vkl$1@news.albasani.net> (permalink)

Cross-posted to 2 groups.

Show all headers | View raw


Hello,

Threadpool with priorities was updated to version 1.54 (stable version), 
and threadpool was updated to version 1.55, i have changed something 
inside the scalable Anderson lock so that the exemples works correcly, 
now Threadpool with priorities is very stable.


Author: Amine Moulay Ramdane


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

Operating Systems: Win , Linux and Mac (x86).


Description:

Thread Pool Engine.

The following have been added:

- You can give the following priorities to jobs:

LOW_PRIORITY
NORMAL_PRIORITY
HIGH_PRIORITY

- Uses a FIFO queue that satisfies many requirements: it is FIFO fair, 
it minimizes efficiently the cache-coherence traffic and it is energy 
efficient on the pop(): when there is no items in the queue it will not 
spin-wait , but it will wait on a portable manual event object..

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

- You can distribute your jobs to the workers threads and call any 
method with the threadpool's execute() method.

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

Look into defines.inc there is many options:

CPU32: for 32 bits architecture
CPU64: for 64 bits architecture

Please read an article that i wrote about my Threadpool engine: article.

Look at test1.pas demo inside the zip file...

You can dowload Threadpool with priorities 1.54 from:

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

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

-Sd for delphi mode....

Required Delphi switches: -DMSWINDOWS -$H+

For Delphi 5,6,7 use -DDelphi

For Delphi 2005,2006,2007,2009,2010+ use the switch -DDELPHI2005+

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

{$DEFINE CPU64} and {$DEFINE Win64} for 64 bit systems
Note: testpool.pas is a parallel program of a Matrix multiply by a 
vector that uses SSE+ and it requires Delphi 5+. test.pas and 
test_thread.pas works with both FreePascal and Delphi.


Thank you,
Amine Moulay Ramdane.

Back to comp.programming.threads | Previous | Next | Find similar


Thread

Threadpool with priorities version 1.54 aminer <aminer@toto.net> - 2013-12-21 12:16 -0800

csiph-web