Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
How does that work? It would seem the opposite to me. If my CPU can handle faster data processing than my RAM's bandwidth then wouldn't the CPU be operating at less than 100% capacity?

The CPU cores stall while waiting for a memory miss (they're in the middle of an instruction).

From the outside, software can't tell the difference between a stall and being busy.

The CPU has other performance counters that can provide more detail:

PCM_mac_pro.png

A good overview of why classical CPU utilization has outlived its usefulness is at https://software.intel.com/en-us/articles/intel-performance-counter-monitor/
___

ps: One reason that hyperthreading is useful for heavily multi-threaded workloads is that the micro-scheduler in the chip can see that one thread is stalled for memory, and run a thread that has its memory but is waiting for execution units. The OS scheduler cannot do that.
 
Last edited:
The CPU cores stall while waiting for a memory miss (they're in the middle of an instruction).

From the outside, software can't tell the difference between a stall and being busy.

Thank you for explaining that. If my memory's bandwidth is not my system's bottleneck then perhaps my media & scratch drives could be. I just ordered the Samsung XP941 512GB PCIe SSD blade. I'll try putting my Adobe caches on it to see if that speeds up Premiere Pro and Media Encoder.
 
Thank you for explaining that. If my memory's bandwidth is not my system's bottleneck then perhaps my media & scratch drives could be. I just ordered the Samsung XP941 512GB PCIe SSD blade. I'll try putting my Adobe caches on it to see if that speeds up Premiere Pro and Media Encoder.

Another possibility is that you simply have more cores than your application can use - and the others simply sit idle.

If you're getting 30% utilization on a 12-core, that's about 4 busy threads.

Look at forums dedicated to your application(s), and see what people are saying about multi-core performance.

If the consensus is that "it can't use more than 4 cores", then your system is already optimal - unless you want to scrap it and get a faster 4-core system.
 
I was getting near 100% CPU utilization when rendering & exporting HD video files from Premiere Pro and Adobe Media Encoder with my old GTX 680. It was when I began working with UHD video files that my bottleneck appeared.

I upgraded my CPU from a 3.33GHz 6-core to a 3.46GHz 12-core, went from 16GB RAM to 48GB, went from the GTX 680 to a Radeon 280X (and now a 290X), and put my media and scratch files on SSDs and RAID 0 arrays. I'm still seeing the CPU under utilized.

I'll see if the PCIe SSD makes any difference.

Thanks for your help and insight.
 
All modern OS's and languages are based on the idea of progressive data latency. We write software explicitly to mitigate how slow it is to get the data you need. First we optimize to have the data in registers as they are the fastest, then RAM which is a number of clock cycles behind, then virtual RAM which is even slower and is on disk, then RAM caches which is an attempt to put disk contents in RAM for faster access, then an eternity later if we have to we'll go out to disk for the data we want. Then of course we have networking and bus data which is another matter.

Managing this pipeline is probably the major concern of modern systems and much of the time the computer gets it wrong and the CPU stalls. Multicore? GPGPU? Forgetaboutit, you're usually still stalled on data. This is the biggest issue with GPGPU programming (using all those beautiful state machines in your GPU). The problem? You can't get the data moved around quick enough to make it worth the while.

So, SSD worth while? You bet - for EVERY aspect of your system, remember data access is the biggest bottleneck in computers. I wish it were register flash, i.e. as fast as registers. If HP delivers memristors like they're promising maybe we'll get that. And note they'll have to rewrite operating systems to even work on such as system (and system software).

I'll also note that the GPU industry knows this, the problem isn't having enough cores, it's moving data fast enough.
 
Installing an SSD for all the reasons listed above is the number 1 best value upgrade for any computer not least for the subjective improved response time & general 'snappiness'. The other big advantage that nobody mentioned yet is reliability. Mechanical hard disks are many times more likely to fail than SSDs.
 
Managing this pipeline is probably the major concern of modern systems and much of the time the computer gets it wrong and the CPU stalls. Multicore? GPGPU? Forgetaboutit, you're usually still stalled on data. This is the biggest issue with GPGPU programming (using all those beautiful state machines in your GPU). The problem? You can't get the data moved around quick enough to make it worth the while.

Thank you for this insight. Indeed my bottleneck seems to be my media drive. I put my media files on a Samsung XP941 PCIe SSD (about 2.5x faster than my current media drive) and Adobe Premiere Pro had no trouble playing back UHD clips with 5+ filters on them in real time.

This was just a test to find my bottleneck (I put my Adobe Cache/Preview Files on the PCIe SSD too but found little change in performance) because ultimately I'm going to put my OSX & Apps on that Samsung XP941.

For my new media drive I ordered three SanDisk Extreme Pro 1TB SSDs which I will put in RAID 0 array. This should produce faster read & write speeds than the Samsung XP941. I'm hoping that these modifications will finally produce a well-balanced, high-performance UHD editing system.
 
Nobody said that MTBF is higher for an SSD disk.
So, if you are not looking at the performances but you are looking at reliability too, an SSD is better... :)
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.