[Ecls-list] Long time building of OpenAxiom with ECL 10.1.1
Gabriel Dos Reis
gdr at integrable-solutions.net
Mon Jan 18 09:29:34 UTC 2010
On Mon, Jan 18, 2010 at 2:31 AM, Juan Jose Garcia-Ripoll
<juanjose.garciaripoll at googlemail.com> wrote:
> 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.
Is it conceivable to pass (a pointer to) the lisp environment to each
C function, as
opposed to storing it in a thread local storage?
> 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...
More information about the ecl-devel