In a multiprocessor system, task parallelism is achieved when each processor executes a different thread (or process) on the same or different data.
This type of parallelism is found largely in applications written for commercial servers such as databases.
The exploitation of thread-level parallelism has also begun to make inroads into the desktop market with the advent of multi-core microprocessors.
If this trend continues, new applications will have to be designed to utilize multiple threads in order to benefit from the increase in potential computing power.
This contrasts with previous microprocessor innovations in which existing code was automatically sped up by running it on a newer/faster computer.