[Ecls-list] Long time building of OpenAxiom with ECL 10.1.1

Juan Jose Garcia-Ripoll juanjose.garciaripoll at googlemail.com
Mon Jan 18 08:31:48 UTC 2010


On Mon, Jan 18, 2010 at 7:49 AM, Yue Li <xyly781 at gmail.com> wrote:

> I'm a user of OpenAxiom computer algebra system. Today I used ECL cvs
> version (10.1.1) with multithreads enabled to build OpenAxiom.[...]
> It seems that by enabling multhreads gave a big slow down ;-(


Yes, multithreading costs a huge factor because of several factors: binding
of special variables, keeping an environment local to each thread, etc. For
instance the lisp environment has to be stored in a thread-local storage and
that costs _a lot_ to make in multiple systems -- it is absurd, but it is at
least a function call for _every_ use of that storage in _every_ C function.
Since we do not have the liberty to reserve a register for that purpose or
having a hard-coded address for the translation table  (why the hell doesn't
the ELF loaded do this?) the overal result is a slowdown of every function
that uses resources such as the multiple values return array, the lisp
stack, special variable bindings...

Juanjo

-- 
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20100118/abc5a036/attachment.html>


More information about the ecl-devel mailing list