Maxima GCL init file update



Hi Vadim, and thanks!

1) As you know, we are working on making some of these out-of-the-box
   gcl defaults as well.  This init script will be just fine in any
   case.
2) If you can be a bit more specific about which tests, and even which
   routines or subsystems, are behind the "1.1-2" times slower figure
   you cite, it would be most helpful.  Even try my latest gprof
   patch, run a test which shows significant slowdown vs. CMUCL, and
   profile it.  I'd like to get this figure to about "0.8" or so :-). 

Take care,

"Vadim V. Zhytnikov" <vvzhy@mail.ru> writes:

> Hello!
> 
> I'm about to upload into CVS new maxima-init.lisp.
> It affects GCL Maxima only and performs some
> GCL memory allocation tuning providing significant
> performance boot especially on very complicated
> problems (up to factor of 10 and more).
> According to my tests with such init file
> GCL Maxima is just 1.1 - 2 times
> slower than CMUCL Maxima.  New init file works
> quite well with Maxima 5.9.0 as well.
> 
> But there is one issue I want to discuss.
> Initial GCL Maxima memory footprint is now
> about 11-13 Mb.  Partially due to larger
> ANSI GCL image partially due to initial
> memory preallocation. Is this is OK?
> In principle one can reduce initial memory
> footprint to 4-7Mb by removing initial
> preallocation altogether but this slows Maxima
> down by factor of 2 on small and middle
> size problems.  Any ideas are greatly
> appreciated.
> 
> New maxima-init.lisp:
> ============================================================
> ;; Pre-allocating memory and more aggressive allocate growth
> ;; parameters substantially improves GCL performance
> #+gcl
> (progn
> 
>    #+gmp (si::set-gmp-allocate-relocatable t)
> 
>    ;; If you really need smaller initial memory footprint
>    ;; comment these pre-allocations out
>    (si::allocate-relocatable-pages 400 t)
>    (si::allocate 'cons 	1000 t)
>    (si::allocate 'fixnum 100  t)
>    (si::allocate 'symbol 200  t)
>    (si::allocate 'array	100  t)
>    (si::allocate 'string	200  t)
>    (si::allocate 'cfun 	400  t)
> 
>    ;; It is not recommended to make hole size less than 1000
>    (si::set-hole-size 4000)
> 
>    (si::allocate-growth 'cons 	1 10000 66 33)
>    (si::allocate-growth 'fixnum 	1 10000 66 33)
>    (si::allocate-growth 'symbol 	1 10000 66 33)
>    (si::allocate-growth 'package	1 10000 66 33)
>    (si::allocate-growth 'array 	1 10000 66 33)
>    (si::allocate-growth 'string 	1 10000 66 33)
>    (si::allocate-growth 'cfun 	1 10000 66 33)
>    (si::allocate-growth 'sfun 	1 10000 66 33)
> 
>    (si::allocate-growth 'relocatable  1 10000 66 33)
>    ;(si::allocate-growth 'contiguous   1 10000 66 33)
> 
>    )
> =====================================================
> 
> 
> -- 
>       Vadim V. Zhytnikov
> 
>        <vvzhy@mail.ru>
>       <vvzhy@netorn.ru>
> 
> _______________________________________________
> Maxima mailing list
> Maxima@www.math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
> 
> 
> 

-- 
Camm Maguire			     			camm@enhanced.com
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah