ParallelAccelerator.jl vs Devectorize.jl vs other

question

#1

What’s the difference between ParallelAccelerator.jl and Devectorize.jl?

I’ve seen there are some sparse threads speaking about this two packages and about how to do Julia faster…

But how do they compare in terms of methodology?
And what about speed performance, memory, easy of use…?
Any other prefered alternative?

I’ve seen some discussion about other languages such as Chapel.
What’s expected from Julia or it’s packages in the long term?


#2

Devectorize is just a macro that transform certain syntax to loops. Parallelaccelerator is a full fledged compiler doing much more advanced transformations.


#3

See https://julialang.org/blog/2017/01/moredots


#4

The problem I see is that Parallelaccelerator doesn’t work on Windows, at least no out-of-the-box


#5

Fortunately, as mentioned in the link that @stevengj posted, Julia has gained the ability to devectorize and fuse loops without any external packages at all. As of Julia v0.6, you can just write: a .* b .+ c .* d .+ a and get exactly one loop over the data, just as you would with Devectorize on earlier version of Julia.


#6

Do you think ParallelAccelerator will ever be available for Windows too?
Or now with Julia 0.6 we won’t notice much its benefits?


#7

.-fusion still doesn’t parallelize.


#8

Relevant ticket on GitHub: