SIMD Vectorization in Julia
software.intel.comThis looks great! I used Julia in my Master's thesis and it was very fast and easy to use. One thing however was annoying: The lack of shared memory parallel computing. Unfortunately, in Julia, each parallel process has its own memory such that you have to keep multiple instances of your data and/or move data around all the time. This can be a deal breaker if working with very large data sets and actually is preventing me from using Julia even more. But I'm sure, it's on the right track.
In Julia 0.3 there are SharedArrays on Linux/OS X: http://julia.readthedocs.org/en/latest/stdlib/base/#shared-a...
Hopefully there will also be multithreading someday, although right now it's still a work in progress: https://github.com/JuliaLang/julia/tree/threads
Shared-memory multiprocessing is supported in the latest release on linux and mac. Multi-threading is in development and has seen some significant progress over the past few months.
> But I'm sure, it's on the right track.
Yes, and it is worth pointing out that both this article and the @simd feature were written by Arch Robison - who is also the architect of Intel's Threading Building Blocks.
Doesn't it have mmap?
It does, in the base library in fact:
https://github.com/JuliaLang/julia/blob/master/base/mmap.jl
Here is the relevant documentation:
http://julia.readthedocs.org/en/latest/stdlib/base/#memory-m...
Julia is really shaping up quite nicely.
Looks like a very nice feature - but would be great if they provided some actual benchmarks showing when vectorization is faster than not. For example, if you're bound by memory bandwidth, no amount of extra compute is going to help you.
as always, intel comes up with nice tutorial from time to time.
The author of this piece, Arch Robison, has been an active contributor to Julia. Not only did he write this tutorial, but he actually contributed the `@simd` implementation himself.[1]
He also presented this information as a talk at Juliacon back in June.[2]
Really nice to see Intel giving Julia some attention.
This needs to be ported to JavaScript, or at least update the Math library to include Vectors.