[Maxima] maxima speed is important and an appeal to developers

Manuel Pedrinero rossetil pdx7l1 at yahoo.es
Sat May 5 16:56:55 CDT 2012


In some tests sbcl speed is equal or better than Julia, and computation speed is  a big appeal for developers, for example Cython and panda developers consider important the speed of the code. Below some posts and code. 

--- El sáb, 5/5/12, Manuel Pedrinero rossetil <pdx7l1 at yahoo.es> escribió:

De: Manuel Pedrinero rossetil <pdx7l1 at yahoo.es>
Asunto: Re: Maxima Lapack is very slow: 7 seconds versus 0.002 seconds in Julia.
Para: "Raymond Toy" <toy.raymond at gmail.com>
Fecha: sábado, 5 de mayo, 2012 23:47


 Maxima can also be used numerically.  For example in some benchmarks sbcl speed is equal or better than Julia:

Example: 

1.- sbcl  has better speed than julia  at lisp processing:  

 https://groups.google.com/forum/#!topic/julia-dev/Fo91y_mSZVI

2.- Speed is important, for example Cython people trying to join with Julia.  Cython existence is because its speed, since pure python is not enough.

https://groups.google.com/forum/#!topic/julia-dev/YftOOEfcwrk  

3.- Developers of libraries,  (like panda =  similar to dataframes in R ported to python)
should jump into another language if it gives them enough speed.

see http://wesmckinney.com/blog/?p=475

below code for the test in sbcl. Time is about 0.037 seconds, similar to  julia
 




code:  (defvar a1) (defvar a2) (defvar a3)

(setq a1 (make-array (expt 10 7) :element-type 'double-float :adjustable nil :fill-pointer nil :initial-element 0d0 :displaced-to nil)
      a2 (make-array (expt 10 7) :element-type 'double-float :adjustable nil :fill-pointer nil :initial-element 0d0 :displaced-to nil)
      a3 nil)

(loop for i below (expt 10 7) do 
     (setf (aref a1 i) (random 10d0)
       (aref a2 i) (random 10d0)))

(defun haz()
    (declare (optimize (speed 3) (safety 0) (compilation-speed 0) (space 0))         
         (type (simple-array double-float) a1 a2))
  (let ((res 0d0))
    (loop  for x double-float across a1
       for y
 double-float across a2  do
 (setf 
                                  res (the double-float (+ res (the double-float (* x y))))))))


--- El sáb, 5/5/12, Raymond Toy <toy.raymond at gmail.com> escribió:

De: Raymond Toy <toy.raymond at gmail.com>
Asunto: Re: Maxima Lapack is very slow: 7 seconds versus 0.002 seconds in Julia.
Para: "Manuel Pedrinero rossetil" <pdx7l1 at yahoo.es>
Fecha: sábado, 5 de mayo, 2012 23:15

On 5/5/12 9:00 AM, Manuel Pedrinero rossetil wrote:
> 
> Hello:
> 
>  Thanks for the information about cffi, and for your work in matlisp.
> 
 
>  There are some projects to improve the  port of  sbcl to windows. Since

I understand that ccl works very well on windows, so why wait for an
improved port of sbcl?

> gcl lacks ffi, sbcl seems a good candidate once the port is mature. 
> (good speed and cffi).
> 
>   Perhaps the efforts in linear algebra of Rosseti, Tamas, Raymond,
> Liliam (gsl), Luis Oliveira. (cffi) and others could be ported to maxima
> or some interface via cffi between Julia and maxima could be very
> interesting.  There also some Lispers that use Lisp and R (for example
> C. Rhodes) .  Improving the numeric capabilities of maxima could appeal
> to more people and communities.

Let us not lose sight of what maxima is.  It is a computer algebra
system, not a numerical evaluation system.  There are many of those
 already.

Ray

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.math.utexas.edu/pipermail/maxima/attachments/20120505/158d525d/attachment-0001.html>


More information about the Maxima mailing list