Difference between JuliaGPU and Distributed.jl

This is more of a conceptual question.

It seems like Distributed.jl and JuliaGPU.jl both take advantage of parallel operations. I guess what’s the difference? Why use JuilaGPU when Distributed gets the same job done.

Distributed.jl is for connecting multiple Julia processes together (presumably running on different servers, but they can be on the same server too if you want to just do multiprocessing). It provides some rudimentary tools for parallel computing, like @distributed and pmap, but generally you need to roll your own parallelism or use other packages which sit on top of Distributed.jl (such as Dagger.jl).

JuliaGPU is for running code on GPUs. The various JuliaGPU packages compile your code for GPUs, and because of their architecture, that code is then automatically parallelized on the GPU.

You can also use both together if you have multiple servers each with GPUs, but again, you’ll need to roll your own parallelism to combine them for your problem.

1 Like

Oh interesting. Thanks for sharing!

1 Like