P.S. I'm joking, I do love Go, even though it's by no means a perfect language to write parallel applications with
It is a joke, but an SQL engine can be massively parallel. You just don't know it, it just gives you what you want. And in many ways the operations resembles what you do for example in CUDA.
CUDA backend for DuckDB or Trino would be one of my go-to projects if i was laid off.
throwing infiniband or IP on top is really structurally more of the same.
Chapel definitely can target a single GPU.
Disclaimer: I did not watch the video yet
going the other direction, making channel runtimes run SIMD, is trivial
His example is:
sequence
.map(|x: T0| ...: T1)
.scan(|a: T1, b: T1| ...: T1)
.filter(|x: T1| ...: bool)
.flat_map(|x: T1| ...: sequence<T2>)
.collect()
It would be written in Futhark something like this: sequence
|> map (\x -> ...)
|> scan (\x y -> ...)
|> filter (\x -> ...)
|> map (\x -> ...)
|> flattenI haven't studied it in depth, but it's pretty readable.
ChadNauseam•1h ago
Raph is a super nice guy and a pleasure to talk to. I'm glad we have people like him around!