I really like the first bullet point. Contrary to intuition, sometimes limiting what a programmer can do leads to better programs, both in terms of runtime and conceptual understanding. Of course, this makes executing certain tasks that require sequential finessing difficult.
Jonathan
The first bullet point also really resonates with me. One observation is that the first bullet of the slide seems to be in conflict with the last - if data parallelism is really all about imposing rigid program structure, then why are the standard tools for writing parallel programs flexible like C? I wonder if this choice by the creators of ISPC and CUDA is for ease of adoption or if they have other reasons.
I really like the first bullet point. Contrary to intuition, sometimes limiting what a programmer can do leads to better programs, both in terms of runtime and conceptual understanding. Of course, this makes executing certain tasks that require sequential finessing difficult.