[armedbear-devel] stack overflow for worst-case vector sort
Mark Evenson
evenson.not.org at gmail.com
Tue Nov 8 10:15:47 UTC 2011
On Nov 7, 2011, at 14:48 , James M. Lawrence wrote:
> ABCL-1.0.0
>
> (let ((a (map-into (make-array 10000)
> (let ((x 0))
> (lambda () (incf x))))))
> (sort a #'<)
> nil)
> =>
> Stack overflow.
> [Condition of type STORAGE-CONDITION]
>
Filed as [ticket #187][1]. Thanks for the reproducible bug report.
[1]: http://trac.common-lisp.net/armedbear/ticket/187
[…]
> ABCL's sort also seems a little slow. The psort benchmarks show too
> much speedup for only 2 cores (http://lparallel.com/download).
> […]
> size 200000 | op < | SORT 4703
> size 200000 | op < | SORT 4701
> size 200000 | op < | SORT 4715
> size 200000 | op < | SORT 4712
> size 200000 | op < | PSORT 1977
> size 200000 | op < | PSORT 1975
> size 200000 | op < | PSORT 1979
> size 200000 | op < | PSORT 1994
> psort is based upon the following (posted to usenet by Roger Corman;
> free license).
[…]
We'll definitely check psort out for inclusion in our CL:SORT implementation. Thanks for the tip!
And I might have an alternate implementation for workers threads
for the JVM to replace what [lparallel]() that should "spread"
nicely across all available cores that uses [the
java.util.concurrent][ThreadPoolExecutor]. But my time is currently
over-committed between non-ABCL work and perfecting the abcl-1.0.1
release, so this will probably not happen in the next couple days.
That ABCL is not performant with lparallel indicates I need to look
at the efficiency of our Bordeaux Threads implementation.
[lparallel]: http://lparallel.com/overview/
[ThreadPoolExecutor]: http://download.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadPoolExecutor.html
More information about the armedbear-devel
mailing list