Good partition divides into small pieces both computation and data . Domain decomposition Functional decomposition Domain Decomposition First decompose the data associated with a problem. If possible, divide date into small pieces of equal size. Next, partition computations that operates on each data. Generates a a number of tasks, each with some data and set of operations on data.
Communication is needed to move data between tasks.
Divide computation into separate tasks. Data requirements of these tasks may be disjoint or they may overlap significantly An example of problem for which functional decomposition is appropriate is a search tree problem. Functional Decomposition A simulation of the earth's climate comprises atmosphere, ocean, hydrology, etc. Communication Tasks generated by above partitioning intended to execute concurrently, but not independently The computation to be performed in one task requires data from another. Information flow is specified in communication phase.