On 27 Jun 2018, at 16:30, Paul Winalski <paul.winalski(a)gmail.com> wrote:
What Clem said. Chisnall is right about C having been designed for a
sequential-programming world. That's why Fortran (with array and
other parallel/vector operations built in) rules in the HPTC parallel
programming space. But I don't buy most of his arguments. Making
parallel programming easy and natural has been an unsolved problem
during my entire 30+ year career in designing software development
tools. It's still an unsolved problem. [...]
I think that's right. The missing bit is that while once the only people who had to
worry about processors with a lot of parallelism were the HPC people, who fortunately
often had algorithms which parallelised rather well. Now you have to worry about it if
you want to write programs for the processor in your laptop and probably the processor in
your watch. Or you would, if the designers of those processors had not gone to heroic
lengths to make them look like giant PDP-11s. Unfortunately those heroic lengths
haven't been heroic enough as has become apparent, and will presumably fall apart
increasingly rapidly from now on.
So he's right: the giant PDP-11 thing is a disaster, but he's wrong about its
cause: it's not caused by C, but by the fact that writing programs for what systems
really need to look like is just an unsolved problem. It might have helped if we had not
spent forty years sweeping it busily under the carpet.
A thing that is also coming of course, which he does not talk about, is that big parallel
machines are also going to start getting increasingly constrained by physics which means
that a lot of the tricks that HPC people use will start to fall apart as well.