Why isn't Lightroom using all of my CPU power when exporting photos?

  • 2
  • Question
  • Updated 1 year ago
Why isn't Lightroom using all of my CPU multi-core power when exporting photos? I have dual 6-core CPU's on my computer (12 physical cores not hyperthreaded) and when exporting photos, Lightroom is using around 30-40% of my processing power (according to my Windows Task Manager). When I have thousands of photos to export, like for a timelapse, this takes FOREVER.

Photo of Aaron Kupferman

Aaron Kupferman

  • 2 Posts
  • 0 Reply Likes

Posted 4 years ago

  • 2
Photo of Chris Cox

Chris Cox

  • 20280 Posts
  • 813 Reply Likes
This topic probably explains it: http://feedback.photoshop.com/photosh...

Short version: not everything can use all processors and be faster. Some things are inherently serial, some would slow down using more processors, and some are beyond the application's control (like disk IO). Lightroom might be able to get a bit more performance, but that will also take a lot of work.
Photo of Jay Cole

Jay Cole

  • 1 Post
  • 0 Reply Likes
Normally you can be right.  However, exporting is inherently a linearly divisible CPU problem, if you export more files than you have threads.  Each file is independent.  So the general response does not apply in his example.
Photo of Aaron Kupferman

Aaron Kupferman

  • 2 Posts
  • 0 Reply Likes
Thanks for your quick response Chris. Disk IO I've got covered with all local SSD's. But it sounds like you guys are limited by the compression of the camera raw files? So converting to DNG (overnight while I sleep) should measurably speed up my eventual workflow and exporting of these files?

But I thought the point of separate cores means you can run inherently serial tasks in multiple instances in parallel. Is this a limitation in how Lightroom was initially written that doesn't allow it to run certain tasks in parallel? Is there a fundamental road block in Lightroom's architecture which would be too large to rewrite to take advantage of current hardware like GPUs and multi-core machines fully? I run many other heavy duty image processing applications, and Lightroom is the only one that stands out as never taking advantage of the full power of a multi-core machine.

I kept hoping that this would get flushed out in one of the many versions of Lightroom development, but performance and computer utilization has not gotten better. I keep hoping that with the resources and brain power of Adobe, and the success of Lightroom, attention will be given to what I view as the last big problem in the software.

Thanks!

Aaron
Photo of Chris Cox

Chris Cox

  • 20280 Posts
  • 812 Reply Likes
It's not that simple, you still have to make the serial code path thread safe, and manage the parallel code paths so they don't interfere or slow down. It's a lot more complicated than a single algorithm or routine. But the ACR/Lightroom team is pretty good, and constantly working on ways to make it faster.
Photo of Rob Cole

Rob Cole

  • 4831 Posts
  • 379 Reply Likes
I don't have a satisfying answer for your question yet, but some people are able to increase CPU utilization by dividing exports and initiating multiple simultaneously.

For example, Lr may only be able to achieve 30-40% utilization per photo being exported, but if you have 3 or 4 batches being exported simultaneously, you will probably get closer to 100% utilization.

PS - Disk I/O is a small fraction of total, so SSDs don't help that much, nor will DNG.
Photo of Rob Cole

Rob Cole

  • 4831 Posts
  • 379 Reply Likes
'Export in Parallel' is a simple script that will probably do exactly what you want:


http://www.robcole.com/Rob/ProductsAn...

(post-process actions not supported)

I wrote it, and it's free.