For those wondering what it's for: it's basically NumPy + a JIT compiler with standard Haskell syntax (you mostly just need to change the type signatures, not the code).
It can vectorize, parallelize on the CPU, or offload to the GPU automatically.
It's a very mature project, maybe 10+ years old.
>It's a very mature project, maybe 10+ years old.
Strange personally never heard or read about Accelerate before. I think it has the same main problem with generic naming language like Futhark (this very issue already mentioned in a different concurrent post).
As a modern array language, perhaps Accelerate should look into D4M as a basis, it's also started 10+ years ago [1].
D4M is based on math like SQL, specifically associative array algebra but not relational unlike SQL. It's more generic since can it caters to most modern data abstractions including spreadsheets, database tables, matrices, and graphs [2].
You can achieve 100M database inserts per second with D4M and Accumulo more than a decade ago back in 2014 [3].
[1] D4M: Dynamic Distributed Dimensional Data Model:
[2] Mathematics of Big Data: Spreadsheets, Databases, Matrices, and Graphs:
https://direct.mit.edu/books/monograph/5691/Mathematics-of-B...
[3] Achieving 100M database inserts per second using Apache Accumulo and D4M (2017 - 46 comments):
One big difference compared to NumPy (which you may or may not care about depending on how picky you are), is that Accelerate is a higher-order programming model. Basically, you can have 'map' (with a user-provided function), and it will go fast, in contrast to NumPy's model where only first-order operations go fast.