Earlier quoted context omitted.
There's no need for research. The answer is simple: You can't run Erlang concurrency on a GPU. GPUs fundamentally get their advantage by running the same operations on a huge set of cores across different data. They aren't just Platonically faster than CPUs, they're faster than CPUs on very, very specific tasks. Out of the context of those tasks, they are in fact massively, massively slower . Some of the operations E…
Not what i meant (these are superficialities). Erlang is a concurrency-oriented language though its concurrency architecture (multicore/node/cluster/etc.) is different from that modeled by GPUs (Vectorized/SIMD/SIMT/etc.) Since share-nothing Processes (so-called Actor model) are at the heart of the Erlang Run Time System(ERTS)/BEAM it is easy to imagine a "group of Erlang processes" being mapped directly to a "group…
I want a good parallel language [video]
61–69 of 69 posts
Re: I want a good parallel language [video]
#62Earlier quoted context omitted.
Yeah, i too was looking for Erlang. The thing i would really like to see is some research on how to run the Erlang concurrency model on a GPU.
Something like vine lang or something built on interaction nets might be close to what you are looking for. It can run on GPU.
Re: I want a good parallel language [video]
#63Interesting talk. He mentions Futhark a few times, but fails to point out that his ideal way of programming is almost 1:1 how it would be done in Futhark. His example is: sequence .map(|x: T0| ...: T1) .scan(|a: T1, b: T1| ...: T1) .filter(|x: T1| ...: bool) .flat_map(|x: T1| ...: sequence ) .collect() It would be written in Futhark something like this: sequence |> map (\x -> ...) |> scan (\x y -> ...) |> filter (\x…
The example you showed is very much how I think about PRQL pipelines. Syntax is slightly different but semantics are very similar.
At first I thought that PRQL doesn't have scan but actually loop fulfills the same function. I'm going to look more into comparing those.
Re: I want a good parallel language [video]
#64Earlier quoted context omitted.
Not what i meant (these are superficialities). Erlang is a concurrency-oriented language though its concurrency architecture (multicore/node/cluster/etc.) is different from that modeled by GPUs (Vectorized/SIMD/SIMT/etc.) Since share-nothing Processes (so-called Actor model) are at the heart of the Erlang Run Time System(ERTS)/BEAM it is easy to imagine a "group of Erlang processes" being mapped directly to a "group…
The biggest issue I think is utilizing massive GPU memory bandwidth, you really need SIMD or your GPU is just going to generate a lot of heat to do only a bit of work.
Re: I want a good parallel language [video]
#65Re: I want a good parallel language [video]
#66Went in thinking "Have you heard of Go?"... but this turned out to be about GPU computing.
Well, they said "good" :). Go we already have, that is correct. P.S. I'm joking, I do love Go, even though it's by no means a perfect language to write parallel applications with
Re: I want a good parallel language [video]
#67Earlier quoted context omitted.
Well, they said "good" :). Go we already have, that is correct. P.S. I'm joking, I do love Go, even though it's by no means a perfect language to write parallel applications with
Haha, yeah. Idk any other language where I practically get a free parallelization+concurrency sandwich. It's kept me coming back to Go for a decade now, despite them using a signal that prevents using it for system level libraries. They literally broke my libnss-go package years ago when they selected the signal to use to control the concurrency portion of the runtime.
Parallelism is trivial and front-and-center.
And no it's not a niche language. Don't listen to the army of Python technicians.
Re: I want a good parallel language [video]
#68Earlier quoted context omitted.
Haha, yeah. Idk any other language where I practically get a free parallelization+concurrency sandwich. It's kept me coming back to Go for a decade now, despite them using a signal that prevents using it for system level libraries. They literally broke my libnss-go package years ago when they selected the signal to use to control the concurrency portion of the runtime.
Elixir. Parallelism is trivial and front-and-center. And no it's not a niche language. Don't listen to the army of Python technicians.
The free sandwich I'm referring to with Go is the ability to just do `go funcnamehere()` and that's running concurrently and in parallel. If I need coordination of those goroutines, I can still do that with any number of locking patterns. It's extremely convenient, making the trade off of having a runtime baked in worth it imo.
Re: I want a good parallel language [video]
#69Earlier quoted context omitted.
Elixir. Parallelism is trivial and front-and-center. And no it's not a niche language. Don't listen to the army of Python technicians.
There seems to be about the same level of effort with Elixir as there is for a language like Kotlin. The free sandwich I'm referring to with Go is the ability to just do `go funcnamehere()` and that's running concurrently and in parallel. If I need coordination of those goroutines, I can still do that with any number of locking patterns. It's extremely convenient, making the trade off of having a runtime baked in wor…
That's why I made Elixir my main language. A lot of the tech sphere stubbornly pretends we don't live in a world with multicore CPUs, even to this day.