How is this much different from erlang?
The closest thing that most programmers are familiar with is a relational database. Imagine a language that treats certain data structures like an RDBMS treats a table and does the sort of optimizations that a query optimizer does when you run an intrinsic (either statically at compile time or dynamically at runtime). That's data parallelism.
Erlang has facilities to make this sort of thing possible, but last I looked it doesn't do it for you.
If anyone who's actually an expert wants to step in and correct my assumptions please do so!