Boost logo

Boost :

Subject: Re: [boost] [threadpool] version 22 with default pool
From: Edouard A. (edouard_at_[hidden])
Date: 2009-03-09 04:38:14


On Sun, 08 Mar 2009 22:36:16 +0000, "Phil Endecott"
<spam_from_boost_dev_at_[hidden]> wrote:

> So you are doing all of the partitioning in the main thread, before
> starting any other threads?
>
> Have you profiled that?

Yes I know this is suboptimal, see below.

> If that is sufficiently large, the performance of the threadpool queue
> (etc) will not matter as much.
>
> I suggest that you also tweak your benchmarking so that it runs for a
> *lot* longer than 30 milliseconds.

Yes I know, I have done benchmarks on larger data. To simplify:

 - std::sort - x 1
 - boost::tp::sort - x 2.5
 - tbb::sort - x 4

I had some ideas this morning to improve my existing implementation. As you
said the partitionning phase it not parallelized at all, which is a shame
really and would account for the huge difference.

I guess you can simply start a rec_pivot_partition in a thread without
waiting for it, in which case there is no need for the sort in a different
thread.

As for the block size, I guess the ideal size will change from platform to
platform.

-- 
EA

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk