Providers of new computer architectures regularly try to introduce new programming models, e.g. recently CUDA/OpenCL for GPGPUs, and displace C/POSIX as the control interface to platform parallelism. (Poss & Koening, AM3: Towards a hardware Unix accelerator for many-cores, 2015)
Why do architecture designers try to design new programming models to displace C/POSIX for parallel computing? Is C/POSIX not well suited to multiprocessors or did the original authors of C/POSIX not have the need for parallel computing in mind at C/POSIX design time? Or is it the case that programmers need more capabilities than C/POSIX can deliver,thus resorting to new designs e.g. CUDA/OpenCL, etc.?