Discussion about this post

User's avatar
Vicente Sanchez Leighton's avatar

Hi Adam, Timothy Roscoe and his team at ETHZ did some OS work that seems to me very synergetic to your language based analysis: have you seen it ? There's an overview keynote on that work by Timothy Roscoe at OSDI'21 entitled "It's Time for Operating Systems to Rediscover Hardware"... If the programming language (even low level) lives in a world of fantasy it is indeed a problem as you point, but if the OS also lives in such a fantasy world things are even worse ;-) ("It's Time for Operating Systems to Rediscover Hardware", https://www.youtube.com/watch?v=36myc8wQhLo)

Andrew Farmer's avatar

Have you looked at the Cerebras architecture?

1000x1000 grid of processing elements, connected by a single-cycle-per-hop communication fabric, each element independently programmable and has private memory, communication is message-passing, no shared memory. Each processing element is more like a simple in-order core than a CGRA/FPGA, but overall is dataflow architecture.

Has a zig-like language (CSL) for programming it. Language encourages defining parameterized modules for laying out on the processing elements, where the parameters might be location or behavior switches, then a "layout" module (like a main() function) that assigns modules to each PE and sets up the message-passing routes.

https://www.cerebras.ai/blog/cerebras-architecture-deep-dive-first-look-inside-the-hw-sw-co-design-for-deep-learning

https://github.com/Cerebras/sdk-examples/tree/master

I worked on CSL long ago. Really enjoying your blog series. The critique of Von Neumann especially. So many PhD-years spent making compilers and CPUs super smart to wring performance out of a language-induced straightjacket.

9 more comments...

No posts

Ready for more?