Article Thumbnail

Adobe Lightroom CC/6 Multi Core Performance

Written on May 12, 2015 by Matt Bach
Share:
Table of Contents:
  1. Introduction
  2. Test Setup
  3. Importing Images from USB
  4. Exporting Images to Disk
  5. Convert from RAW to DNG
  6. Generate 1:1 Previews
  7. Generate Smart Previews
  8. Create HDR Image
  9. Create Panorama Image
  10. Facial Recognition
  11. Conclusion
  12. Related Articles

Introduction

When designing a computer there are literally thousands of different hardware components to choose from. Each one will affect the performance of your system in different ways and depending on the software you will be using some will be more important than others. In the case of Adobe Lightroom CC and Lightroom 6, one of the most critical hardware components is the CPU. Even then, there are still hundreds of different CPU models to choose from and each have their own unique specifications.

So the question is: how do you know which CPU will give you the best performance in Lightroom?

Before even attempting to answer this question, it is important to understand the two most basic CPU specifications:

  1. The frequency is how many operations a single CPU core can complete in a second (how fast it is).
  2. The number of cores is how many physical cores there are within a CPU (how many operations it can run simultaneously).

This doesn't take into account the differences between CPU architectures, but in an ideal world a CPU that has the same frequency but twice the number of cores would be exactly twice as fast. Unfortunately, making software utilize multiple cores (and do so effectively) is difficult in most situations and almost impossible in others. Add in the fact that higher core count CPUs tend to have lower operating frequencies and it becomes even more difficult to ensure that you are choosing the best possible CPU for your application.

In this article, we want to find out how well Lightroom can utilize multiple cores - known as multi-threading - to help determine what type of CPU (either one with a high frequency or a high core count) will give you the best possible performance. If you want to skip over our testing procedure and individual benchmark results and simply view our conclusions, feel free to jump ahead to the conclusion section.

Test Setup

To help us determine how many cores Lightroom CC and Lightroom 6 is able to use in a variety of situations, we performed a number of actions and timed how long each took with various numbers of CPU cores. These actions were chosen based on input from a number of our customers who use Lightroom professionally. In order to have a large amount of CPU cores available to help us determine exactly how well Lightoom is able to utilize multiple cores, we used the following hardware:

Since we want to determine how many CPU cores Lightroom can effectively utilize, we are going to alter how many cores are available by setting the affinity for Lightroom in Task Manager. This way we can accurately benchmark Lightroom with anywhere from a single core to the full twenty cores available with this setup. To help with consistency - and since the benchmarks we performed ran for several days - we programmed a custom script using AutoIt to start Lightroom, set the CPU affinity, import the relevant images, perform the benchmark action three times, then clear the catalog and restart Lightroom to get ready for the next round of testing.

To analyze the data, we will be presenting our results in terms of how long it took each action to complete with the various number of CPU cores made available to Lightroom. From the results, we will also be using Amdahl's Law to estimate the parallel efficiency for the action (or how good at utilizing multiple CPU cores the software is). For more information on Amdahl's Law and how it works, check out our Estimating CPU Performance using Amdahl's Law article.

Importing Images from USB

Since importing images from a SD card, USB drive, or other external drive is often the very first thing you would do in Lightroom, we decided to start our testing there. 

Lightroom Import Benchmark

As you can see from the graph, the time it took to import our 80 RAW test images into Lightroom did not change at all based on the number of CPU cores available. However, this is the one action we tested where we do not believe the CPU was the main bottleneck. Instead, it appears that even with the fast Kingston USB 3.0 drive we used (which has a sequential read speed of about 120MB/s) the USB drive is what primarily limited performance. We are confident that importing is only single-threaded (we can determine that by watching the load % on each CPU core while importing the images), but using a CPU with a higher frequency is unlikely to improve the time it takes to import images unless you are comparing a very low-frequency CPU to a high-frequency CPU.

Exporting Images to Disk

Just like importing images, exporting them is something that any Lightroom user is going to do at some point. If you are exporting directly to a CD/DVD, the speed of the export is very likely to be limited by the speed of your optical drive. However, if you are exporting to a hard drive (either to upload to the internet, to email, or for storage) your CPU is likely going to be what limits the speed of the export.

Lightroom Export Benchmark

Unlike importing, exporting is able to use a large number of CPU cores. Also unlike importing, we found that the drive you are exporting to actually has very little impact on how long it took to complete our test export. We tested a number of drives that had sequential write speeds ranging from just 80MB/s up to 1200MB/s and the difference between the slowest drive and the fastest was at most about 2%.

Because of this, the speed of the CPU is the main limiting factor when exporting images from Lightroom. Based on Amdahl's Law we were able to estimate the parallel efficiency of exporting images to be about .97 (97%) which means that it highly benefits from having a high core count CPU. However, one thing we will point out that isn't immediately obvious in the chart above is that once we started to utilize the second CPU (so from cores 11-20) the parallel efficiency dropped from .97 (97%) to about .5 (50%) which is not very good in terms of efficiency.

In other words, exporting images in Lightroom greatly benefits from higher core count CPUs, but only when you can get that high core count from a single CPU. Once you need a second CPU the benefits drop dramatically. The reason for this is not entirely clear, but our best guess is that is has something to do with the fact that once a second CPU is involved some data needs to go across the QPI link (which is how the two CPUs "talk" to each other) which introduces an additional bottleneck. 

Convert from RAW to DNG

After you have imported images into Lightroom, you may want to covert them from RAW to DNG which - depending on the number of images you have - can take quite a while:

Lightroom Convert to DNG Benchmark

Converting to DNG definitely sees a benefit from having multiple CPU cores, but the efficiency is only about .69 (69%). Just like exporting images, the benefit from having more cores is greatly reduced once you start utilizing a second physical CPU. In this case, however, instead of just reducing the parallel efficiency we saw absolutely no benefit to having a second CPU.

Due to the lower efficiency, the best CPU for converting images to DNG is actually going to be one with between four and eight CPU cores with a relatively high (3.5GHz+) frequency.

Generate 1:1 Previews

1:1 previews are extremely useful to have if you often zoom into images while in the Library module to see if the image is in focus or not. Without 1:1 previews, when you zoom into an image it can take Lightroom 3-5 seconds or even longer to load the full-sized RAW or DNG image. With the previews already generated, however, it is much faster - often taking less than a second to load the image.

Lightroom 1:1 Previews benchmark

While the curve of this graph looks very similar to the one from converting images to DNG, the efficiency is actually a bit higher at approximately .77 (77%). The efficiency actually drops a bit once you hit about 5 CPU cores, but not by enough to really impact your choice of CPU. This parallel efficiency of .77 is one of the highest we found in Lightroom (with only exporting images being higher). It is high enough that an eight or ten core CPU would be useful, although with any fewer cores you will still want to prioritize a CPU with a high frequency.

Generate Smart Previews

While Smart previews are not 100% necessary to use in Lightroom, they are great if you are using a laptop (or even a desktop) that is often disconnected from the external storage that has your images.

Lightroom Smart Preview Benchmark

Unlike generating 1:1 previews, generating smart previews has a fairly low parallel efficiency of approximately .51 (51%). Again, we see no benefit from having a second CPU, although with this low of efficiency you are likely to hit the point of there being no measurable benefit to having that many CPU cores before you even think about needing a second CPU.

Create HDR Image

While easy to do, creating HDR photos is actually a multi-step process in Lightroom. After you have selected the photos you want to merge, you first need to wait for the preview to generate. After that, you can adjust any settings you want changed then actually create the HDR photo.

Lightroom Merge HDR Photo Benchmark

In the chart above, you can see that generating the preview (the blue line) actually takes much longer than actually creating the HDR photo (the red line). Generating the photo has a parallel efficiency of about .56 (56%) while creating the HDR photo has an efficiency of about .75 (75%). Combining these two steps (the green line) results in an overall efficiency of approximately .6 (60%) while performing the entire HDR photo creation process.

Just like the previous tests, adding a second CPU did absolutely nothing to improve performance. In fact, in the case of HDR photo creation adding a second CPU actually increased the time it took to create an HDR photo by an average of about 5%.

Create Panorama Image

Creating a panorama photo is something Adobe just added to Lightroom CC and Lightroom 6 so we were very interested to see how it performed. Just like creating an HDR photo it has two distinct steps - generating the preview and creating the new panorama image. 

Lightroom Merge Panorama Photo Benchmark

In this case, generating the preview (the blue line) is much faster than creating the panorama photo (the red line) which is exactly the opposite of what we saw with creating a HDR photo. Also, both these steps have a lower parallel efficiency than anything else we tested with the exception of importing images. Generating the preview had a parallel efficiency of about .47 (47%) while creating the photo was only about .41 (41%). Combining these two together results in an overall efficiency of only about .44 (44%) which means a CPU with a high operating frequency (as long as it has 2-3 cores) is going to give you the best performance when creating a panorama photo .

Facial Recognition

In addition to native support for creating panorama photos, the latest version of Lightroom (CC and 6) also added support for facial recognition. To test this, we timed how long it took Lightroom to detect a total of 116 faces from  a collection of 32 images.

Lightroom Facial Recognition Benchmark

While there was a benefit to having two CPU cores, the benefit completely disappears after that point. In fact, we calculated the parallel efficiency to be just .2 (20%) which is pretty much nothing. In other words, the number of CPU cores you have is going to play almost no role in how long it takes Lightroom to detect faces in photos.

Conclusion

Based on our testing, there are two major conclusions we can come to regarding the multi-threading capabilities of Lightoom CC and Lightroom 6:

  1. Lightoom does not work well with multiple physical CPUs. When exporting photos, you do see a benefit from having a second physical CPU, but the efficiency drops like a rock. In most other cases you simply do not get a benefit from having multiple physical CPUs and for some actions like creating HDR and panorama photos you may actually see a small (~5%) drop in performance. This isn't as bad as we have seen in other applications like Photoshop where saw a 30-50% drop in performance with multiple CPUs, but we can safely say that multiple-CPU configurations are not ideal for Lightroom.
  2. Lightroom has a mix of single, light, and heavily threaded components. The parallel efficiency of the actions we tested ranged from nonexistent, to moderate, to fairly good. This makes it very difficult to determine a single CPU that will give you the best overall performance in Lightroom.
Action Parallel Efficiency
(higher is better - 1 is perfect)
Importing images from USB 0
Exporting images to disk .97
Convert from RAW to DNG .69
Generate 1:1 Previews .77
Generate Smart Previews .51
Create HDR image .6
Create Panorama image .44
Facial Recognition .2

Most of the actions we tested have a fairly low parallel efficiency (below .7 or 70%). They still benefit from having more cores, but in most situations a CPU with a lower core count but higher operating frequency will give you the best performance. However, exporting images - which pretty much any Lightroom user is going to do - has a very high parallel efficiency which means a CPU with a high core count will allow you to export images faster. This means that the best CPU for you is going to depend on exactly what actions in Lightroom you regularly find yourself waiting on.

If you find that the only thing you are ever waiting on is exporting images to a disk, then a CPU with a high core count will likely give you the best performance. However, the more time you spend waiting on almost anything else in Lightroom makes a lower core count, high frequency CPU better and better in terms of performance. If your workflow just consists of importing images, converting them the DNG, creating 1:1 Previews, then exporting half of them to a disk, the overall parallel efficiency (based on our testing) works out to be about .75 or 75%. Based on this, the Intel Xeon E5-1680 V3 3.2GHz Eight Core 20MB 140W CPU would be a great choice being about 6% faster than the Intel Core i7-4790K. 

Once you start adding in other tasks like creating panorama or HDR photos, the balance shifts away from a high core count CPUs towards higher frequency CPUs. If you were to import your photos, convert them to DNG, generate Smart previews, create 8 HDR and 2 panoramas photos, then export only a handful of photos (say 10% of the total you imported) the overall parallel efficiency drops to about .57 (57%). At that point, the CPU that would give you the best overall performance would actually be the Intel Core i7 4790K 4.0GHz Quad Core 8MB 88W. This CPU only costs about $400 so in addition to being the fastest CPU for that use-case will also save you quite a bit of money which you could then spend on other aspects of the computer like faster storage or more RAM.

Lightroom CPU performanceBased on our testing, there are four CPUs that we would recommend for Lightroom:

Which CPU is best for you is going to depend on a number of factors including what you do in Lightroom, what other programs you use, which chipset you want to use and how much system RAM you need. The Intel Core i7 4790K is by far the most affordable of the four CPUs and while it may be slower for exporting photos than the other CPUs for almost anything else in Lightroom it will actually be the fastest. However, the chipset it uses can only have at most 32GB of system RAM. This is more than enough for Lightroom, but if you use other programs that need more RAM it may not be the best choice for you. 

If you need more RAM, one of the other CPUs may be a better option. The Xeon E5-1680 V3 is a good choice if you hate waiting for exports to finish while the Xeon E5-1650 V3 or Core i7-5930K (which have identical performance) are both very balanced options. 

If you are configuring a system for Lightroom, we have a number of recommended systems for Adobe Lightroom that uses the results of this article to ensure that each system uses only the best possible hardware:

Tags: Lightroom, Hardware, Multi-threading
Kotlos Kotlos

Excellent analysis!

Could you do another one with the GPU?

Posted on 2015-06-11 15:12:29

Question: What if you split up these workloads into multiple clients running concurrently each performing the same operation (such as generating 1:1 previews) on their own set of images?

Let's say you've 2,000 images you need to generate 1:1 previews for and a 2x12 cpu/core configuration, and the practical limit appears to be around 3-4 cores for such an operation; 4 cores per client (either automatically managed by the OS or manually via core affinity configuration) and each does its own batch of ~333 images. Would this not be completed faster than having a single client do all 2k images' previews alone?

Or what about setting up concurrent 1:1 preview, standard preview and smart preview processes in one client?

Posted on 2015-06-19 20:37:00
Pesto DaCat

Why doesn't the software do that for you AUTOMATICALLY!?!? Why should I have to manually do this...

Posted on 2015-11-06 14:40:54
mclaren777

This article is fantastic and I look forward to reading more Lightroom tests, especially once GPU functionality improves.

Posted on 2015-06-20 04:00:41
Jeff

Just wanted to say THANK YOU for the great write-up and a very helpful Google Doc! I've been searching for a
data-driven analysis of Lightroom performance relative to CPU clock
speeds and core counts since Lightroom 4 was released (due to the more
computationally intensive Process Version 2012) and was almost ready to attempt to try doing an analysis on my own in pursuit of better LR performance. This article has not
only properly analyzed Lightroom's threaded performance, you even
calculated the parallel efficiency which will help extrapolate the data
beyond what we have today in terms of hardware. This was the final piece
to help me decide to invest in a 5820K (assuming OC @ 4.3-4.4GHz)
instead of a 4790K (est. OC @ 4.7GHz) which should provide similar
performance at those speeds now and (hopefully) provide increasing performance as the software
is optimized for more cores in the future across all functions.

Just wanted to point out, as a friendly observation, that I
thought it was a bit odd to bottleneck the import test with a USB 3.0
drive rather than the same internal drive used in the export test (sounds like you have a nice and fast PCIe or M.2 SSD). Also, since export is a CPU intensive task, and the exported files (~23MB RAW converted to ~8MB JPEG) should either fit in the HD's cache or be written fairly quickly/easily to the drive itself, testing various drives during import would probably yield more varied results and insight.

Curious, was Hyperthreading enabled when running the tests? In the past, I had read that HT did not benefit LR (v.4 at the time) at all, a big part of why I built a 2500K system over a 2600K system. Curious how that helps performance, though all of the processors recommended support HT.

While, LR 6/CC now seems to utilize more cores for a single export (supposedly it kicks off 3 exports behind-the-scenes), Theo's comment about trying to run multiple processes (exports, 1:1 preview renders, etc.) would be interesting to try, especially since it seems that LR doesn't benefit from a 2nd CPU at all. With independent data sets that don't require cross-CPU communication, perhaps the additional cores or 2nd CPU would show higher gains.

Posted on 2015-07-04 07:31:15

I'm glad this was helpful! There is certainly more we could test and what you pointed out would make a great "part 2" to this article. For the importing, we limited to USB drives simply because one of the questions we get asked a lot is whether a faster CPU will improve the time it takes to import photos from their flash cards. We have done a bit more testing which you can find in the "hardware recommendations" section for our Lightroom Recommended Systems ( https://www.pugetsystems.com/r... ), although that was more to determine how much the speed of the USB drive affected import times.

I'll make sure I keep in mind hyperthreading comparison, importing from a fast internal HD, and running simultaneous actions when we have the time to expand on this article. Thanks for the feedback, it really helps us tailor future articles!

Posted on 2015-07-06 18:44:00
John Murphy

Does exporting one very large file benefit from more than 4 cores the way exporting multiple files does?

Posted on 2015-08-07 14:20:24
hugemon

Just upgraded from 3930k (6 core) to 5960x(8 core). While speed of each core would be about the same (oc'd to 4.8GHz Sandy bridge architecture vs. 4.5GHz Haswell architecture) Lightroom feels much faster. Of course time to complete each task not that much different, (would be only about 33% faster even if we assume 100% efficiency) usability while doing something in the background is hugely improved. (ie: browsing thru photos while they are still being converted to dng...)

In real life usage users often use lightroom while it is still doing something else. I think (feel) more cores helps much more than the synthetic(?) tests in this article show.

Posted on 2015-08-30 10:51:50
Stefano

Interesting test, thanks.

For me the biggest bugbear in LR was always the laggy performance when using the brush and spot removal tools in the develop module. It seems that LR doesn't very effectively use more than 4 cores anyway and I've found that upgrading to a significantly overclocked (5.1ghz) i5 has given it the headroom to process these changes in real time with very little lag. Of course, video rendering etc. will benefit from more cores, but I don't do that so for me higher clock speed and less cores seems to be the sweet spot.

Posted on 2015-09-29 11:29:51
Borconi Szedressy Emil

Hi.

Thank you for the nice and detailed test.

I'm a funny Lightroom user. I'm not doing any of the RAW to JPEG or panorama or HDR stuff but I do export huge amount of JPEGS. My work process looks at this: import 20k+ images (jpg), apply preset, export them. Currently I have 2 computers a laptop with i7-4712QM and a desktop AMD FX-8350. I have the feeling that my laptop exports faster than the pc. I'm thinking to get 1 or 2 more PC's, and based on your review and the spreadsheet you provided and my work style it looks to me that the using an intel Atom with 8 cores (C2750) should more or less have the same performance as an i7-4790K. Am I being naive? once again I stress out, I do not generate 1:1 preview, do not do any fancy stuff with the images, only import, apply preset, export. I always use SSD for the catalog location drive, to make sure import speed is as good as possible, the killer is the export time. Thanks for the advice.

Posted on 2015-10-11 12:07:26

I can pretty much guarantee you that an i7-4790K will be much, much faster than an Intel Atom. The Atoms are weird because they look great on paper (8 core, 2.4GHz looks amazing!), but they are only 20W CPUs. In order to get that low of wattage, they have to cut out a ton of features that have a huge impact on performance. I don't know what those features are off the top of my head, but I did find a small set of benchmarks for the Atom C2758 (which is similar to the C2750): http://www.silentpcreview.com/... . Notice that they are comparing it to an i3-3217U and A8-5600K and those processors are overall much faster than the Atom even though in terms of core count and frequency they are much lower.

One last recommendation I would make is to look at a i7-6700K over a i7-4790K if you can. The 6700K just launched a month or so ago and should be somewhere around 10% faster for the same price. You will have to spend a bit more on the RAM (since DDR4 is a bit more expensive than DDR3) but I think it would be well worth it.

Posted on 2015-10-12 17:01:53
Mark

Really appreciate the article. Love the spreadsheet too.
Question .... any thoughts to RAM amount? 8gig vs 16gig vs 32gig when exporting?

Variable:
1.500 image to export vs 3000+.
(I edit indian weddings... kind of on the large amount)
2. DDR3 vs DDR4

Posted on 2015-10-29 00:05:41
Pesto DaCat

As figured.. LR is a dog no matter how many cpu's you have.... sad!

Posted on 2015-11-06 14:40:05
Pim

Great article guys! It seems to be the place to be with great expertise on these subjects.

I currently use a i7 2600k@4,4Ghz, 32GB ram combined with a new Samsung 950 pro m2 as OS disk and 4x 4TB raid 0 as my work discs. Do you guys think there is a noticeable difference in upgrading to a 6700i, 5960x or skylake Extreme? Or will it be only noticeable in benchmarks? I work with 50MP (Canon 5DsR) files now and really need some extra speed and 64GB's of ram (32GB ram is pretty quickly filled when opening a few images from lightroom to PS).

Posted on 2015-11-30 20:13:57

Upgrading to a 6700K would definitely give you a performance boost and is what I would recommend. It is hard to know exactly how much faster, but just rough guessing I would expect anywhere from a 15-25% performance improvement (possibly more) over your current 2600K. Also, just recently 16GB DDR4 sticks came out so you can now pair 64GB of RAM with the 6700K. If you think you need even more RAM, I would recommend a Core i7 5930K (Or Xeon E5-1650 V3 which is essentially the same thing) although that will be slower for most Lightroom and Photoshop tasks than a Core i7 6700K.

Posted on 2015-11-30 20:28:48
Adel Mandani

Thank you

Posted on 2016-02-21 02:21:39
Adel Mandani

Thank you

Posted on 2016-02-25 09:54:07
Art

I have a question about ram usage during the panorama process, was your ram maxed out? I had 8gb single Channel, and it took 13:30minutes to process a 21 image panorama, each file was about 27 mega bytes. I bought another 8gb stick and installed for dual channel, and my time dropped to 4:30 minutes. Both times my ram was maxed out, CPU was about 20-30%. I'm wondering if I should spend some more money on another 16gb of ram, or just save money toward a 4790k. I'm not expecting another 16gb to drop my time a whole lot. My brother ran the test with his 4790k and 16gb of ram, and it took him about 2:30 minutes. Not sure if his ram was maxed out though.

Posted on 2016-05-17 03:59:00
spyros

looking at the results, which i agree with, i did some simple tests of my own. i copied a lr catalogue with 100 pictures both to my ssd, local c disk (samsung evo 850,250gb) and to a conventional hard disk 1Tb 7200rpm. then i counted the time it took to export the 100 pictures as jps to a file on the same disk that originally the catalogue resided. it took the same time to create the 100 jpgs. it means that the speed lightrrom cc6 was built towork is not as fast as the conventional hard disk can absorb. the extra speed of the ssd wasnt used here. Now when i went to the develop module and zoomed in the picture, i was a difference in time between the two disks. on the conventiona disk it took 12 seconds to create the 1:1 preview, where the ssd did it in 9 seconds. exporting improves only with a faster processor, where working with the pictures, the ssd improves speed

Posted on 2016-08-11 16:54:41