"To try and take a sequential programme and run it on several cores is impossible," says May, "they (Intel and Microsoft) are taking all the PC applications and putting them on multi-cores and, in my view, they won't be very successful. Taking sequential programmes and trying to make them run in parallel is virtually impossible."
May, the architect of the multi-core Inmos Transputer, sees three approaches being followed for programming multi-cores which have no chance of success.
First the shared memory approach. "Shared memory is incredibly difficult to do", said May, "Intel have tried for years to optimise access to memory and now they're trying to put several cores to accessing one memory and it becomes more and more complex. If you take a general purpose processor, the cores are fighting to get access to the memory system."
Secondly people put their faith in compilers. "Some people will bet on complex heterogeneous architectures and compilers that do magical optimisations - if they don't know that compilers take much longer to develop than hardware."
Thirdly: "Some people will bet on abstraction layers to allow legacy software to be ported to parallel machines - if they haven't yet discovered why their mobile phone takes so long to boot," said May.