Re: Calling Fortran routines on short arrays

Nicolas Neuss <[email protected]> 25 Nov 2003 10:07:06 +0100
Newsgroups gmane.lisp.matlisp.user
Organization IWR
Message-ID <[email protected]>
Raymond Toy <[email protected]> writes:

> >>>>> "Nicolas" == Nicolas Neuss <[email protected]> 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.