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


Groups > comp.programming.threads > #4875

About Active Object Pattern..

From Horizon68 <horizon@horizon.com>
Newsgroups comp.programming.threads
Subject About Active Object Pattern..
Date 2019-01-17 13:34 -0800
Organization A noiseless patient Spider
Message-ID <q1qsdu$u83$7@dont-email.me> (permalink)

Show all headers | View raw


Hello,

Read this:


About Active Object Pattern..

Read about it here:

https://madhuraoakblog.wordpress.com/2014/05/10/active-object-pattern/


As you have noticed i have "invented" a really powerful Threadpool with
priorities that scales very well, and it implements ParallelFor() with
priorities that too scales very well, also you can "easily" emulate an 
Active Object Pattern with it, so no need to implement the Active Object 
Pattern.

More precision about my efficient Threadpool that scales very well, my 
Threadpool is much more scalable than the one of Microsoft, in the 
workers side i am using scalable counting networks to distribute on the 
many queues or stacks, so it is scalable on the workers side, on the 
consumers side i am also using lock striping to be able to scale very 
well, so it is scalable on those parts, on the other part that is work 
stealing, i am using scalable counting networks, so globally it scales 
very well, and since work stealing is "rare" so i think that my 
efficient Threadpool that scales very well is really powerful, and it is 
much more optimized and the scalable counting networks eliminate false 
sharing, and it works with Windows and Linux.

You can download it from my website here:

https://sites.google.com/site/scalable68/an-efficient-threadpool-engine-with-priorities-that-scales-very-well

The Execute() method now supports passing a method or passing a procedure.

I have also implemented a ParallelFor() that scales well, here is the 
method:

procedure ParallelFor(nMin, nMax:integer;aProc: 
TParallelProc;Ptr:pointer=nil;pmode:TParallelMode=pmBlocking;Priority:TPriorities=NORMAL_PRIORITY);

You can pass a parameter in Ptr as a allocated memory, and you can set 
pmode to pmBlocking so that ParallelFor() is blocking or to 
pmNonBlocking so that ParallelFor() is non-blocking. Look inside the 
test.pas example to see how to use it.

Also i have implemented a portable and efficient Future:

My portable and efficient implementation of a future in Delphi and 
FreePascal was updated to version 1.05

I have just enhanced it, and now it is working correctly and efficiently.

You can download it from my website:

https://sites.google.com/site/scalable68/a-portable-and-efficient-implementation-of-a-future-in-delphi-and-freepascal


Thank you,
Amine Moulay Ramdane.

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


Thread

About Active Object Pattern.. Horizon68 <horizon@horizon.com> - 2019-01-17 13:34 -0800

csiph-web