Timeline for multi-threading performance when CPU is maxed out
Current License: CC BY-SA 3.0
7 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Apr 12, 2017 at 7:31 | history | edited | CommunityBot |
replaced http://programmers.stackexchange.com/ with https://softwareengineering.stackexchange.com/
|
|
Sep 19, 2016 at 16:52 | comment | added | BeeOnRope | Perhaps, but it would be kind of a "non-answer" as in: I don't think the cause is "context switches", but without more details I don't the real cause. In fact, frequent switching between threads is often the root cause of performance problems - but it almost always application driven switching - voluntary context switches - (e.g., lock contention), which is very different than involuntary context switching (i.e., OS time-slicing because the number of runnable threads is larger than the number of CPUs) which is I think that the two answers here are getting at. | |
Sep 16, 2016 at 20:04 | comment | added | 8bittree | @BeeOnRope Might be worth explaining that more in it's own answer. | |
Jun 9, 2016 at 23:05 | comment | added | BeeOnRope | Context switches take perahps 5000 nanoseconds, for threads within an application (the applicable case). Typical quantums are 10,000,000 nanoseconds or more, so the context switch overhead alone is not going to explain this regression. What could explain it is if the process is "thread swapping" because of synchronization - for e.g., due to blocking on a fair mutex. | |
Jun 9, 2016 at 21:08 | comment | added | 8bittree | @ycomp They do things differently. Basically, a core, as used by Intel (and, I think most everybody else) is capable of running a single thread without having to share any internal resources (upper level cache, memory, and IO devices are shared, but they're generally not considered part of a core anyway). Over in AMD land, a module is capable of running a single thread without sharing internal resources. Each module has two "cores" which, IIRC, share floating point resources. Those "cores" are less capable than Intel's cores, but more capable than Intel's hyperthreads. At least in theory. | |
Jun 9, 2016 at 20:52 | comment | added | ycomp | is threading better implemented on core i series Intel CPUs than on AMD cpus? nice charts btw ) | |
Jun 9, 2016 at 19:48 | history | answered | 8bittree | CC BY-SA 3.0 |