Skip to main content

more options


Data Parallelism

This section contains three examples of types of problems that could be solved using data parallelism.

In creating a data-parallel design:

  • The ultimate goal is typically to assign one process per CPU or "core"
  • At start, think in terms of the smallest possible parallel tasks
  • Agglomerate these tasks into larger ones in order to:
    • Minimize the number of communication channels
    • Minimize the number and size of messages
  • Agglomerated processes can be mapped onto CPUs in various ways
    • Simplest mapping is one process per CPU
  • Try to be flexible in your thinking!

This section contains three examples of types of problems that could be solved using data parallelism.

Typically, in creating a data-parallel design, the ultimate goal is to assign one process per CPU or "core." However, it is useful to start out by thinking in terms of the smallest possible computational tasks that can be done in parallel. Tasks can then be agglomerated into larger processes.

As we will see, agglomerations should be chosen to minimize the number of communication channels, as well as to minimize the number and size of messages that must be communicated via the channels. The agglomerated processes can be mapped onto the available CPUs in various ways, including the simplest mapping, one process per CPU.

However, it can help to be flexible in your thinking and to consider several options, because a different option may turn out to be better!