Q. What is Single Program Multiple Data (SPMD)
SPMD is in fact a "high level" programming model which can be built on any arrangement of previously described parallel programming models. A single program is executed by every task concurrently. SPMD programs generally have necessary logic programmed into them to permit numerous tasks to branch or conditionally execute just those parts of program they are designed to execute. Tasks don't necessarily have to execute entire program. They may execute just a part of it. In this model numerous tasks can use different data.