|
From: Nicolas N. <Nic...@iw...> - 2003-11-25 09:12:46
|
Raymond Toy <to...@rt...> writes: > >>>>> "Nicolas" == Nicolas Neuss <Nic...@iw...> writes: > > Nicolas> OK. But if GC is done by the same thread, my simple mind > Nicolas> would think that switching it off means setting one > Nicolas> global variable to NIL. > > Yes, I think that's true. I don't use a multithreaded system, though, > so I don't know. Even switching-off GC should probably not be necessary if everything is working fine. I guess that GC is triggered when objects want to get heap-allocated. But for these low-level calls no consing should appear. (Admitted, this will probably make foreign-function interfaces of CL implementations tricky. But it would give us a seamless cooperation with the Fortran and C world.) > Nicolas> bet that I cannot bear too much of overhead here. Could be that I will > Nicolas> have to handle the very small blocks (1x1--3x3) even without any function > Nicolas> call. > > I think even normal BLAS overhead would hurt quite a bit if your > blocks are this small. Putting a 5 args, say, onto the call stack > probably costs as much as the computations in such a small block. Yes, you are right here. I don't yet have a perfect solution. But the problem is not that much different for C/C++ and so on, and with the power of Lisp I hope to do at least as well as those. Up to now I have accepted a lot of performance degradation at several places. But I want to announce Femlisp to the scientific computing community next year and therefore cannot do this any longer. Nicolas. |