It was originally submitted as https://github.com/JuliaLang/julia/issues/9832.
On Fri, Apr 17, 2015 at 1:56 PM, Thomas Covert <[email protected]> wrote: > Filed here: > > https://github.com/JuliaLang/julia/issues/10869 > > On Friday, April 17, 2015 at 3:39:33 PM UTC-5, Viral Shah wrote: >> >> We just haven’t paid much attention to it. Can you file a new issue, >> unless there is already one, which can be bumped? >> >> -viral >> >> >> >> > On 18-Apr-2015, at 1:44 am, Thomas Covert <[email protected]> wrote: >> > >> > Was this issue ever resolved? I'm also interested in seeing a faster >> sortrows(), to the extent that this is possible. >> > >> > For example, sorting 20 million random Float64s on my machine takes >> about 2-2.5 seconds, but a sortrows() on a 20 million by 2 matrix (again, >> random Float64 values) takes about 250 seconds. My algorithm theory is >> rusty here - is lexicographic sorting THAT much harder than simple >> sorting? Shouldn't it be nlogn? >> > >> > >> > >> > On Sunday, January 18, 2015 at 12:46:36 PM UTC-6, Viral Shah wrote: >> > Certainly do file an issue with an easy to produce test case. I am >> pretty sure we have not paid much attention to sortrows, and there is room >> for improvement. >> > >> > -viral >> > >> > On Sunday, January 18, 2015 at 5:30:38 PM UTC+5:30, Tim Holy wrote: >> > If you can reduce this to a standalone, runnable test case that uses >> only code >> > from Base, it would be helpful to file an issue. >> > >> > --Tim >> > >> > On Saturday, January 17, 2015 05:36:36 PM Arch Call wrote: >> > > Give alg=MergeSort a whirl. The doc says this is slower than >> alg=QuickSort >> > > for numeric arrays, but who knows until you try. >> > > >> > > On Saturday, January 17, 2015 at 4:57:20 PM UTC-5, Petr Krysl wrote: >> > > > Hi guys, >> > > > >> > > > This one has me scratching my head. >> > > > >> > > > Matlab code: >> > > > >> > > > function Out =myunique(A) >> > > > >> > > > sA=sort(A,2); >> > > > [sA,rix] = sortrows(sA);; >> > > > d=sA(1:end-1,:)~=sA(2:end,:); >> > > > ad=[true; any(d,2)]; >> > > > iu =find((ad&[ad(2:end);true])==true); >> > > > Out =A(rix(iu),:); >> > > > >> > > > end >> > > > >> > > > was rewritten in Julia. Since some of the functionality is >> different (or >> > > > slower) as written, I had to rewrite a bit. The surprise was that >> even >> > > > after the rewrite the Julia code runs in around 24 seconds whereas >> the >> > > > Matlab code gets it done in two seconds. As I went poking around >> to find >> > > > what is slow, I found that 95% of the time were spent in the sort() >> and >> > > > sortrrows() functions. >> > > > >> > > > Any idea of what could cause this slowness? By the way, >> @code_warntype >> > > > gives the code a clean bill... So are those two functions somehow >> slow by >> > > > themselves? >> > > > >> > > > The Julia version of this is posted at >> > > > https://gist.github.com/PetrKryslUCSD/cde67dfa0f1b0a1f98ac >> > > > >> > > > Thanks, >> > > > >> > > > Petr >> > >> >>
