In concurrent applications, it is important to understand how much improvement i
ID: 3548786 • Letter: I
Question
In concurrent applications, it is important to understand how much improvement is gained by adding threads. Depending on the the workload, it is common to see performance flatten out at a certain level and even degrade. In the chart below, read "concurrency level" as the number of thread
It appears that shortly after 20 threads, the throughput of the measured application here declines with additional threads. What possible reasons to make that occur?
Thanks!
In concurrent applications, it is important to understand how much improvement is gained by adding threads. Depending on the the workload, it is common to see performance flatten out at a certain level and even degrade. In the chart below, read "concurrency level" as the number of thread It appears that shortly after 20 threads, the throughput of the measured application here declines with additional threads. What possible reasons to make that occur?Explanation / Answer
Threading is the current method of choice for extracting performance from multi-core chips. It might seem that if a little threading is good, then a lot must be better. In fact, having too many threads can bog down a program.
The impact of having too many threads comes in two ways.
First, partitioning a fixed amount of work among too many threads gives each thread too little work that the overhead of starting and terminating threads swamps the useful work.
Second, having too many threads running incurs overhead from the way they share finite hardware resources.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.