CPU usage is an incredibly complex metric that doesn't really explain what is actually going on. I noticed while running a benchmark I can get my CPU to 50c and 100% usage and it stays steady like that. But then I tried prime95 and my cpu very quickly hit 99c also at 100%. Likely the different benchmarks were both running as fast as they can but the prime95 one ran on a faster part of the cpu which could generate more heat and does not get stuck waiting on memory or other slow ops.
CPU usage calculation can be (mainly) broken down into "percentage time spent not idle due to program" vs "percentage of max performance used by program". The former is usually what an end user cares about and measures the amount a program is hogging the system. The latter is usually what a programmer wants to know to see how optimized the program is.
Both are extremely complex with a lot of nuance after that but the "percentage time spent not idle due to program" type this article refers to tends to be simpler than trying to figure out cache/mode switches/instruction level parallelism/instructions per clock per type/and so on on top of everything you need to figure out in the first case anyways.
I've found that CPU temperature is an extremely useful way to measure load on the system. All of my computers mine cryptocurrency in the background. I used cgroups to limit their CPU usage, tuning the parameters until the CPU temperature reached acceptable levels. Sometimes I also observe huge spikes in temperature when I do random things. Scrolling certain javascript-heavy pages causes my temperature readings to briefly spike all the way up to 90 °C!
i think you could prove that on linux by getting the number of instructions run. I think perf has a way of getting that info for you. not sure if windows has something simmilar
Hmm, different workloads will have different mixes of instructions, which will take very different amounts of time per instruction (e.g. a chain of uncached memory lookups vs a tight loop of register-register arithmetic). If you had two instances of the same workload, and one was throttled, then yes, you could compare instructions per unit time. But comparing prime95 vs the other benchmark is likely misleading.
I see. But I expect that some instructions cost more (i.e. generate more heat) than others. Someone mentions AVX instructions, for example; presumably 1 million AVX-512 fused-multiply-add instructions cost a lot more than 1 million loads (we can probably arrange for the right proportion of loads to hit a CPU cache vs. go to main memory, so that they end up taking the same time). Even without AVX, I imagine things like 64-bit integer divisions or CRC32 instructions cost more than loads or stores, though I don't know by how much.
Why? 100c is typically the max nominal safe operating temp for CPUs. It would be a waste of resources to add additional cooling to computers not intended to run these type of workloads.
Prime95 is basically a synthetic workload so it makes little sense to optimize for it.
Yeah, the thing is it doesn't only happen in prime95. Nowadays it's any prolonged use where the CPU is fully used, like video editing or gaming. Give an inch and they'll take a mile, as the saying goes.
Temperature junction throttling is a last resort. No laptop should rely on it in normal operation. Of course, both HP/Dell/Lenovo/etc and Intel benefit from increased sales so they don't care.
Counterpoint - during typical (consumer) usage hardware spends most of the time idle. Hardware capable of sustaining the maximum workload indefinitely is likely to have a lower maximum in practice. Unsustainable bursts are likely to provide higher overall performance for typical workloads, so it makes sense to optimize the hardware design for those.
I'd be willing to bet that a "workstation class" laptop that had sufficient cooling to run continuous benchmarks without overheating would be quite unpopular in the market, because of the weight/size burden.
In extension to what the other commenter said, critical temperature that is listed is usually higher than the maximum operating temperature so it is safe to run at the maximum.
It is safe only because it throttles heavily. Shutdown temperature is just 5 degrees higher btw.
At 100 the processor is at high risk of damage, which is why there's a built-in throttling mechanism.
Just imo, if it was safe it would be running at full speed (or at least max base clock) at that temperature.
As someone else said, they're made for burst operation these days, but again, that does not excuse manufacturers using subpar cooling.
I can see the majority is fine with it, but I'm not. A 15-25% failure rate in 2 years would make any other product a rotten lemon. But somehow it's acceptable for computers. Probably because people replace them every 2 years regardless, which is another insanity on its own.
I personally run my hardware for longevity (larger PSU, good temperature ranges, minimal overclocking, etc.) and upgrade every two years but I migrate my tech. downwards. Example: Gaming Rig -> Misc. Project/Guest PC -> NAS/Media Box. Working in tech. you very often make a salary that allows you to upgrade all of these rigs every year with no real consequences, but I think if nothing else we should be trying to reduce tech. waste. Semiconductor manufacturing has a large carbon footprint just like everything else.