Task Parallelism
Task parallelism, also called vertical partitioning, breaks the task into independent sub-tasks, which can be performed concurrently. Execution time is reduced from the sum of the times for the individual tasks (if they were run sequentially) to the maximum time over all tasks.
Task parallelism can produce a significant gain but can only improve performance as much as the slowest sub-task allows. Furthermore, it is generally limited in scalability, as the parallelism depends on the number of tasks, not the amount of data.