Hey, I've been following up on Legion and Regent quite a bit, excellent work there.<p>Do you have a set of benchmarks that others can reimplement to compare the approaches?<p>I've added Dataflow Parallelism to my own multithreading runtime[1] but I didn't had dataflow focused benchmarks yet, well I could add Cholesky Decomposition but it's quite involved.<p>I expect the people from TaskFlow[2] and Habanero[3] (via Data-Driven Futures) would be quite interested as well in a common set of dataflow parallelism benchmarks.<p>By the way if you didn't read the DaCe paper[4] you absolutely should, seems like the age of Dataflow parallelism and properly optimizing for data is coming.<p>[1]: <a href="https://github.com/mratsim/weave#dataflow-parallelism" rel="nofollow">https://github.com/mratsim/weave#dataflow-parallelism</a><p>[2]: <a href="https://github.com/taskflow/taskflow" rel="nofollow">https://github.com/taskflow/taskflow</a><p>[3]: <a href="https://github.com/habanero-rice/hclib" rel="nofollow">https://github.com/habanero-rice/hclib</a><p>[4]: <a href="https://github.com/spcl/dace" rel="nofollow">https://github.com/spcl/dace</a>, <a href="https://arxiv.org/abs/1902.10345" rel="nofollow">https://arxiv.org/abs/1902.10345</a>
some past comments, <a href="https://news.ycombinator.com/item?id=10764268" rel="nofollow">https://news.ycombinator.com/item?id=10764268</a>
I've always wondered why there isn't a general purpose purely functional language that computes a graph of deps and implicitly parallelizes all operations. For some things, like a map over a list, I understand that the overhead of distributing the work is greater than just using one thread, but for things known at compile time (like deps between variables), the cost should be zero to distribute.
I don't understand why something like this would need a separate language. Switching languages means starting over in many ways with regards to tools libraries and semantics. A graph of tasks can be made with a cdecl library.