Re: Calling Fortran routines on short arrays
Raymond Toy <[email protected]> Mon, 24 Nov 2003 14:02:40 -0500
| Newsgroups | gmane.lisp.matlisp.user |
|---|---|
| Message-ID | <[email protected]> |
>>>>> "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. >> A factor of 2 will be very difficult to achieve, since a Lisp function >> call basically loads up a bunch of pointers and calls the function. We >> need to compute addresses, do the without-gc/unwind-protect stuff, load >> up the registers for a foreign call and then call it. Nicolas> Yes. Here I assume (in the direction to what Duane posted) that also the Nicolas> Lisp compiler works with addresses and has them readily available. Yes, we have addresses, but need to figure out from the lisp object address where the actual data is. I would think in a threaded system, locking out GC is even more important since other threads can start GC even if the current thread wouldn't. But I'll look to see what we can do. 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. Ray