Immense challenges?
Eh?
There's a big difference between
- I don't know how to write parallel programs
- my program is sequential and I don't know how to convert it to be parallel
- my program is sequential and no-one will give me an auto-parallelising tool
- writing parallel programs is hard in and of itself
- there are no good languages for writing parallel programs
- shared memory is an idiot's choice of parallel programming and leads to all sorts of difficulties (even with TM)
As an aside, anyone who's written Verilog (or VHDL) to implement a pipelined processor (or similar) has written a parallel program. Lots of folk seem to do this as part of daily life.
And anyone remember the Inmos transputer? Eh, like any worthwhile British innovation, before its time and crippled by poor decisions all over...
-- P