They should not only redesign software for CPU architecture. Most software is created for a single cpu and a single memory space. In real life we have multiple processors, multiple kinds of memory (cache, ram, disk/ssd, raid, san, distributed file systems), network interfaces between server and client (what do you consider 'an application' on the internet?).
And while we are at it: We have issues with software reuse, bugs (in general) and testability, security. Software development is in the pre-industrial age, afaiac.