Multi-threaded Maxima



On 12/27/10 4:11 PM, Richard Fateman wrote:
> It would require an underlying lisp that supports multiprocessing, for
> a start. Not all host lisps
> support multiple threads. (Do any?)
I know that ccl, ecl, and sbcl support threads.  I assume Lispworks and
Allegro do.
>
>>   The Intel I7 has seven cores (using hyper-threading, I think). 
>> Maxima could be as
Probably 4 cores with two threads each.   And if you're rich enough, I
think there are 6-core i7's.
>
> There are a number of basic algorithms that could be made faster, e.g.
> polynomial multiplication in
> the rational function representation, if memory bandwidth were not an
> issue.
> It may be possible to call library routines (written with threads in
> mind) to do stuff faster,
> e.g. bignum arithmetic using GMP.
>
> I would be surprised if any obvious opportunities for parallelism sped
> up the test suite.
You could always run each individual test in a separate thread.   That
would speed up the testsuite quite a bit.

But this would also be a great source of hard-to-find and hard-to-fix
bugs.   There are enough bugs in maxima that we don't need to go
intentionally adding even more. :-)

I still wonder, though, on what kind of symbolic computation would need
to run that fast.  Everytime I've tried to do some computation that took
more than a few minutes, the result was such a huge mess that it was
useless.  A little thought on my part and some work with maxima produced
some manageable symbolic result.

Maybe I do the wrong kind of symbolic work?

Ray