Parallel programming models, Domain decomposition, Parallel programming models -7 – Intel ARCHITECTURE IA-32 User Manual

Page 353: Domain decomposition -7

Advertising
background image

Multi-Core and Hyper-Threading Technology

7

7-7

Parallel Programming Models

Two common programming models for transforming independent task
requirements into application threads are:

domain decomposition

functional decomposition

Domain Decomposition

Usually large compute-intensive tasks use data sets that can be divided
into a number of small subsets, each having a large degree of
computational independence. Examples include:

computation of a discrete cosine transformation (DCT) on
two-dimensional data by dividing the two-dimensional data into
several subsets and creating threads to compute the transform on
each subset

matrix multiplication; here, threads can be created to handle the
multiplication of half of matrix with the multiplier matrix

Domain Decomposition is a programming model based on creating
identical or similar threads to process smaller pieces of data
independently. This model can take advantage of duplicated execution
resources present in a traditional multiprocessor system. It can also take
advantage of shared execution resources between two logical processors
in Hyper-Threading Technology. This is because a data domain thread
typically consumes only a fraction of the available on-chip execution
resources.

The section “Key Practices of Execution Resource Optimization”
discusses additional guidelines that can help data domain threads use
shared execution resources cooperatively and avoid the pitfalls creating
contentions of hardware resources between two threads.

Advertising