|
Boost : |
From: Clint Levijoki (clevijoki_at_[hidden])
Date: 2006-06-08 05:53:46
Hey all,
This is actually a 2 part interest inquiry:
1. I think there could be some usefulness in parallel versions of the
algorithm functions, like for_each and find and unique_copy.
2. In the couple days of r&d I have come up with a class named
parallel_task_master which runs a thread function many times over and
manages them so you keep your thread counts low and working as hard as
possible. So if you have a quad-core cpu it can be specified so you never
go over a 4 thread limit. It's also setup so you can keep adding tasks
recursively and it will keep the thread count fixed and never deadlock.
Because the tasks in parallel_task_master run relatively in order, I think
some sort of queue could be made to parallelize functions that needed to
return output in a serial form. So it could be used to decode video stream
packets for example.
This parallel_task_master in itself may have some value alone, but it was
written to assist in creating parallel version of the functions in
<algorithm>. Some of them are not so parallelizable, some are
embarrassingly so.
-Clint Levijoki
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk