[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...
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the ecl-devel