Welcome, Guest
Username: Password: Remember me

TOPIC: Is FCPX Multi-Processor Capable/Possible Mac Pro Bottleneck?

Is FCPX Multi-Processor Capable/Possible Mac Pro Bottleneck? 09 Feb 2018 06:46 #94025

  • TheMacGuy
  • TheMacGuy's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 1
  • Karma: 0
So this is my first post here, but I have been using Final Cut for about 3-4 years now, and one question I have always wondered is if FCPX is multi-processor ready? I know it's multi-core ready, but what about multi-processor? I ask because I have two main Macs I run it on: a 2015 MacBook Pro (quad core) and a 2012 Mac Pro (12 core). My performance numbers show that for 99% of my workflow, my MacBook can outdo my Mac Pro, by a long shot, because most projects are H.264 (thanks QuickSync!). But what I noticed is Final Cut is only ever taking, at the most, 6 cores (12 threads) and not all 12 cores (24 threads). Why could this be? Could there be a bottleneck somewhere? Just today I tried taking the same 4k timeline shot with my Mavic Pro, and while my Mac Pro took just an extra minute to render (2.25 mins vs 3.5 mins), the export time was ridiculous: 3 mins vs 17.75 mins. I was thinking maybe a bad CPU, but I have been able to stress both CPUs with no problem. I know Final Cut will only take what it needs, but why so little? Below are the specs of both machines. TIA!

MacBook Pro: 2015 15", Core i7 2.2GHz Quad, 16GB of RAM, 512GB Apple PCIe SSD, Iris Pro (no dGPU), plugged into a 4k monitor.
Mac Pro: 2009 to 2012 Upgrade, 2x 3.06GHz Xeon 6-core CPUs, 48GB of RAM, 256GB Apple PCIe SSD, GTX 970 4GB. Plugged into same 4k monitor.
The administrator has disabled public write access.

Is FCPX Multi-Processor Capable/Possible Mac Pro Bottleneck? 09 Feb 2018 13:43 #94038

  • FCPX.guru
  • FCPX.guru's Avatar
  • OFFLINE
  • Platinum Boarder
  • bbalser.com
  • Posts: 1736
  • Thank you received: 227
  • Karma: 18
"Why could this be? "

Because using more cores would not gain anything. Just because you have 12 cores (which as you point out is not multiprocessor, and you don't say how many processors you have, only how many cores) doesn't mean every function an app performs requires all 12, nor would all 12 help but often hinder some operations. This is simply how computers work, not just FCPX and macOS.

You also have to look at GPU. Rendering and some exporting uses some GPU power also. So what are the GPUs on both Macs?

Yes, FCPX is multi-core/multi-cpu and dual GPU aware.

So my question is, what external drives are you using to put your media and Libraries on, what percentage of each Mac's system drive is free space,

Your system seems to be fine, not sure what the "problem" is. The newer Mac outperformed the older Mac? Normal. Your older Mac has slower RAM than the newer one, too. The older one has no QuickSync as you state. And only using 6 cores is using a lot of power, considering how much the GPU is doing at the same time.

Again, your Mavic Pro is H.264 which uses QuickSync if you're exporting it as native codec. Personally, I don't consider a 2012 Mac Pro that powerful any more...
The administrator has disabled public write access.

Is FCPX Multi-Processor Capable/Possible Mac Pro Bottleneck? 09 Feb 2018 15:27 #94045

  • joema
  • joema's Avatar
  • OFFLINE
  • Platinum Boarder
  • Posts: 884
  • Thank you received: 191
  • Karma: 14
TheMacGuy wrote:
...is if FCPX is multi-processor ready? I know it's multi-core ready, but what about multi-processor? I ask because I have two main Macs I run it on: a 2015 MacBook Pro (quad core) and a 2012 Mac Pro (12 core). My performance numbers show that for 99% of my workflow, my MacBook can outdo my Mac Pro, by a long shot, because most projects are H.264 (thanks QuickSync!). But what I noticed is Final Cut is only ever taking, at the most, 6 cores (12 threads) and not all 12 cores (24 threads). Why could this be? ...same 4k timeline shot with my Mavic Pro, and while my Mac Pro took just an extra minute to render (2.25 mins vs 3.5 mins), the export time was ridiculous: 3 mins vs 17.75 mins....

FCPX exists at the application layer. I doubt it has specific code for dispatching threads on a multi-socket computer. It probably uses macOS Grand Central Dispatch for thread management: en.wikipedia.org/wiki/Grand_Central_Dispatch

Threads running on different CPUs in a multi-socket computer cannot communicate as rapidly as threads running on the same CPU. Within a CPU, all cores have access to an on-chip shared cache, which is very fast. Between CPUs they can only communicate using Intel's Quick Path Interconnect: en.wikipedia.org/wiki/Intel_QuickPath_Interconnect

Threads have varying need to interact with each other. However some interaction is always needed. This interaction rapidly places a limit on multi-thread scalability, even on perfect hardware with infinite bandwidth. On real-world hardware with finite bandwidth these limits intrude much sooner.

The worst case is having a multi-socket computer where threads on CPU 1 need to frequently communicate with threads on CPU 2. It can be faster overall to just use threads on one CPU and leave the other CPU idle or running non-related threads from other processes. That kind of thing is not handled at the app layer it's handled by the OS layer.

It's possible that the macOS thread scheduler has identified this scenario for your export case and is intentionally only using threads on one CPU. Either way, it's likely unrelated to FCPX. Other apps with the same thread profile would probably behave similarly.

A similar situation exists with hyperthreading. There are cases where running two threads per core is slower than one thread per core. It appears the macOS thread scheduler tries to identify these cases and uses the most efficient size thread pool. So sometimes you'll only see every other virtual core in use. Again, this is managed below the application layer by the operation system.

Encoding or decoding 4k H264 is one of the weakest areas of a Mac Pro. Even a 2013 12-core D700 Mac Pro which has 12 cores on a single CPU is about 1/2 as fast as a 2017 i7 iMac at this. I'd expect a 2012 dual-chip Mac Pro to be even slower.

For 4k H264 encoding, your best solution is getting a 2017 i7 iMac 27. It is much faster on this task than either your 2015 MBP or 2012 Mac Pro.
The administrator has disabled public write access.