Boost logo

Boost :

From: Steven Ross (spreadsort_at_[hidden])
Date: 2008-07-04 19:01:20


Hi Phil,

I've attached a testcase. Call "make", and copy your data file to
"input.txt", then call ./spreadsort, and compare the runtime to ./spreadsort
-std. Please note that I made a couple modifications to SpreadSort.h so
that non-integer types can be sorted using just >> and < operators, and that
this testcase works that way. This sample sorts the data on the first row
of data values only, and only prints out that first row to avoid confusion
when diffing results. It also casts the floats to ints because I haven't
written float_sort yet, and I don't have your fixed-point code to work with.

On Fri, Jul 4, 2008 at 2:26 PM, Phil Endecott <
spam_from_boost_dev_at_[hidden]> wrote:

> Steven Ross wrote:
>
>> From my reading, it actually has a larger L1 cache (and smaller L2 cache),
>> and for that purpose a MAX_SPLITS as high as 13 might be better.
>> Increasing
>> LOG_MIN_SPLIT_COUNT might also speed up your test a little.
>>
>
> I'm afraid adjusting those makes it slower.

Using my attached testcase, I reproduced the minor speedup you saw using the
constants I sent you. I tested different values and discoved that
MAX_SPLITS was getting in the way of good performance, and that I was better
off living with cache misses and doing less iterations. With MAX_SPLITS
thus increased to 20 (8MB maximum bin memory), I saw a 34% speedup. I've
attached the Constants.h that shows this speedup.
Could you confirm this speedup on your end?

Steve





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