libera/#sbcl - IRC Chatlog
Search
15:16:52
phao
Hi. Is there a guide on efficient numerical computation (floating point stuff, openmp, mpi, stuff like that I guess) with sbcl?
17:53:23
stassats
got a proof of concept for proper callbacks https://gist.github.com/stassats/9c6debdde5f7370ba2b0c7974002f347
17:56:47
stassats
two things to figure out: where to stash it so that it doesn't move and how to fixup the thread tls id
19:05:08
stassats
simply returning is just 5x faster than calling the old callback, i guess 4x is as good as it gets
19:16:30
stassats
wonder if there can be some non-lisp mode of operations, not registering as a lisp thread, respecting the C calling conventions
19:17:20
stassats
so you could have a non-lisp thread talking to C and not being stopped by the GC, but, naturally, it can't touch any movable lisp memory
20:17:49
karlosz
stassats: real callbacks sound really great, especially now that there's a documented interface for them
20:17:49
Colleen
karlosz: Bike said 7 hours, 48 minutes ago: i've been thinking of it as a reverse of type inference in the sense that there can be both a simple data-dependent analysis like meta evaluate, and then a more involved control flow dependent analysis like constraint propagation
20:17:49
Colleen
karlosz: Bike said 7 hours, 47 minutes ago: and it seems to me that constraint prop might be overkill, since in the reverse case we only need it when there's more than one definition for a thing, which is rarer than having more than once use (which is why constraint prop for types is useful)
20:17:49
Colleen
karlosz: Bike said 7 hours, 46 minutes ago: it's true a reverse analysis could be a different thing from meta-evaluate, though. it's just dual or whatever, and simple enough that i thought interleaving them might make snese
20:19:58
karlosz
what are you thinking for making the xeps (or whatever indirection mechanism) not move?
20:42:14
karlosz
so there's two options: allocating the 16 bytes trampoline (jmp and all) in static space, or just allocating the addresses in static space which get fixed up like anything else
20:45:28
karlosz
well, the original linkage mechanism for the runtime to call out to lisp is basically keeping static fdefns around