[Numpy-discussion] sorting and nans, timings.
David Cournapeau
david at ar.media.kyoto-u.ac.jp
Thu Jul 23 03:01:05 EDT 2009
David Cournapeau wrote:
> Charles R Harris wrote:
>
>> Hi All,
>>
>> I changed the sort routines to sort nans to the end and got some
>> timings. Sorting 100000 random doubles 100 times yields:
>>
>> current nan version
>> quicksort 1.17 sec 1.29 sec
>> mergesort 1.37 sec 1.36 sec
>> heapsort 1.83 sec 2.12 sec
>>
>> Curiously, mergesort doesn't seem to suffer at all. This is using x !=
>> x for nan detection, using npy_isnan is notably slower with my
>> compiler (gcc 4.3.0).
>>
>
> That's because glibc isnan is slow :) I was surprised, but our own isnan
> replacement is much faster than the glibc one at least (like almost
> twice as fast on my P4 machine). Glibc isnan avoids branching, but it
> seems that it tries too hard.
>
IMO, a 10-15 % increase in time for better nan handling in sort
definitely worths it.
cheers,
David
More information about the NumPy-Discussion
mailing list