4 ms·
The linked TOC is long and I've only skimmed it, but I wouldn't call Erlang a data parallel language per se. When I hear "data parallel" I'm thinking of a langu
by mmalone 10y ago
The linked TOC is long and I've only skimmed it, but I wouldn't call Erlang a data parallel language per se. When I hear "data parallel" I'm thinking of a language with abstract data types (ADTs) for lists, and maybe sets, bags, and dictionaries too. There are also language intrinsics like join, map, etc. that can and will automatically be optimized and will "lift" computations into a parallel or distributed context for you. There are various minimal sets of core datatypes and intrinsics that a language can provide to achieve this.
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!