In this first phase, the software program is split into tasks or a set of instructions that can then be executed on different processors to implement parallelism. To perform this subdivision, two methods are used:
- Domain decomposition: Here, the data of the problems is decomposed. The application is common to all the processors that work on different portions of data. This methodology is used when we have a large amount of data that must be processed.
- Functional decomposition: In this case, the problem is split into tasks, where each task will perform a particular operation on all the available data.