Terms Functional Parallelism - an application can be parallelised along its functions so that each task performs a different function eg input, problem setup, solution, output and display. Data Parallelism - all the tasks are the same but each one only knows and solves a part of the data. Each program corresponds to a task making up the application. Tasks may interact through explicit message-passing using the system assigned opaque TID to identify each other. Workload allocation Data decomposition assumes that the overall problem involves applying computational operations or transformations on one or more data structures and that these data structures may be divided and operated upon.
Function decomposition divides the work based on different operations or functions.
Eg the three stages of a typical program execution - input, processing and output or results could take the form of three separate and distinct programs each one being dedicated to one of the stages.