Programming Model

Refers to how a programmer expresses code

e.g. Sequential (SISD on von neuman), Data Parallel using special vector instructions (SIMD), Multi-threaded programs (MIMD, SPMD)

Refer Flynn’s Taxonomy

Execution Model

Refers to how the underlying hardware exeutes the code

e.g. Out-of-order execution, Vector Processor, Array Processor, Multi-core processor, Multi-processor

Refer parallelism_overview

Different Scenarios

Execution model can differ from programming model
e.g. Sequential code executed in OoO fashion by a superscalar processor

Programming ModelPossible Execution
SISDProcessor with ILP ; OoO execution ; VLIW processor
SIMDArray or Vector (pipelined) processing units
SPMDMulti-core / Multi-processor systems ; SIMD processors (GPU)