Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote