Puget Systems print logo

https://www.pugetsystems.com

Read this article at https://www.pugetsystems.com/guides/1818
Article Thumbnail

Pix4D 4.5.6 HT / SMT Performance Analysis

Written on July 1, 2020 by William George
Share:

TL;DR: Disabling HT/SMT reduces performance in Pix4Dmapper

Pix4D performed the best with Hyperthreading and Simultaneous Multithreading turned on across all systems we tested. These features are enabled by default on most systems, so no special configuration is necessary. Other photogrammetry programs may behave differently, so if you use additional software check our other articles about HT and SMT for more information.

Introduction

Intel's Hyperthreading (often shortened to HT) and AMD's similar Simultaneous Multithreading (SMT) are features found on many mid-range and almost all high-end processors and enabled by default. These technologies work by duplicating a portion of each CPU core's pipeline, allowing a second software thread to be ready and waiting to execute commands as soon as the core finishes processing the thread it is actively working on. That doubles the number of "cores" the operating system sees, and in some applications can lead to a substantial increase in performance. However, in certain situations, it can also reduce performance - especially if a program struggles to use lots of cores effectively (shown by processing times stagnating or even go down as the number of cores in a CPU goes up).

In past articles we have observed that some photogrammetry applications seem to perform better with lower core count processors, so we wanted to look at whether HT and SMT could be negatively impacting performance in these programs. In this article, we are focusing on Pix4D. If you would prefer to skip over our test setup and various benchmark results, feel free to jump straight to the Conclusion.

Looking for a Pix4D Workstation?

Puget Systems offers a range of powerful and reliable systems that are tailor-made for your unique workflow.

Configure a System!

Labs Consultation Service

Our Labs team is available to provide in-depth hardware recommendations based on your workflow.

Find Out More!

Test Setup

Listed below are the specifications of the systems we will be using for our testing:

AMD Ryzen Test Platform
CPU AMD Ryzen 9 3950X
CPU Cooler Noctua NH-U12S
Motherboard Gigabyte X570 AORUS ULTRA
RAM 4x DDR4-2933 16GB (64GB total)
Intel 9th Gen Test Platform
CPU Intel Core i9 9900K
CPU Cooler Noctua NH-U12S
Motherboard Gigabyte Z390 Designare
RAM 4x DDR4-2666 16GB (64GB total)
AMD Threadripper 3rd Gen Test Platform
CPU AMD TR 3970X
CPU Cooler Noctua NH-U14S TR4-SP3
Motherboard Gigabyte TRX40 AORUS PRO WIFI
RAM 4x DDR4-2933 16GB (64GB total)
Intel X-10000 Series Test Platform
CPU Intel Core i9 10980XE ($979)
CPU Cooler Noctua NH-U12DX i4
Motherboard Gigabyte X299 Designare EX
RAM 4x DDR4-2933 16GB (64GB total)
Shared PC Hardware/Software
Video Card NVIDIA GeForce RTX 2080 Ti 11GB
Hard Drive Samsung 960 Pro 1TB
Software Windows 10 Pro 64-bit (version 1909)
Pix4Dmapper 4.5.6
Puget Systems Pix4D Benchmark

Test Methodology

For benchmarking photogrammetry applications we now have four image sets that we own the rights to, covering both smaller and larger size models and map projects. All of these image sets are available in our public Pix4D benchmarks, split up to allow quick or extended tests, which you can download and run if you want to compare your system's performance to what we measured for this article.

  • Rock Model - 82 photos at 20 megapixels each
  • School Map - 51 photos at 18 megapixels each
  • School Model - 278 photos at 18 megapixels each
  • Park Map - 810 photos at 18 megapixels each

Benchmark Results

The focus of this article is on each processor's performance in Pix4D with Hyperthreading or SMT enabled versus disabled, rather than comparing one processor to another, so the graphs are set up to reflect that. There are two results for each CPU, with HT/SMT on shown in blue and then off shown in red. These charts are showing the total processing time for each image set, in seconds, so smaller numbers and shorter lines indicate better performance. Scroll through the gallery below to see an overview of the results:

For those who want to dig into how HT and SMT impacted performance in different processing steps, here is a full table of the results:

Pix4D 4.5.6 Hyperthreading and SMT On vs Off Performance Table

Click to enlarge

Analysis & Conclusion

In all but one of our tests, having Hyperthreading or Simultaneous Multithreading turned on resulted in the best performance. The only place where disabling those off helped was with the smallest image set on the Threadripper 3970X, and the modest gain there was more than offset by losing performance with all three larger image sets. Other photogrammetry programs may behave differently with these features, but in the case of Pix4D it is clear that leaving HT and SMT enabled is the way to go.

Should Hyperthreading or SMT be turned on or off when running Pix4D?

For this application, it is clear that having Hyperthreading or Simultaneous Multithreading enabled will give you the best performance.

Photogrammetry Workstations

Puget Systems offers a range of poweful and reliable systems that are tailor-made for your unique workflow.

Configure a System!

Labs Consultation Service

Our Labs team is available to provide in-depth hardware recommendations based on your workflow.

Find Out More!
Tags: Intel 9th Gen, Intel X-series, AMD Ryzen 3rd Gen, Intel X-10000, AMD Threadripper 3rd Gen, photogrammetry, Pix4D, Core i9 9900K, Ryzen 9 3950X, Hyperthreading, SMT
Santiago

Nice article. What amount of RAM do you recommend for large datasets ~10k images? would 64 GB be enough?

Posted on 2020-07-04 02:20:50

10,000 images? Hmm, no, I don't think 64GB would be enough... or at least, it might work but would likely lead to a lot of page file usage which would decrease performance. The largest project I've worked with personally was approximately 2,000 images, and in that data set we saw a moderate performance gain going from 64 up to 128GB of memory (which indicates to me that this size image set needs >64GB to avoid having to use the page file). So for 10,000 images? Whew... as much as you can get, probably. 512GB ought to be a safe amount, I would think, but that will greatly limit your options for CPUs. You might need to settle for 256GB in order to get the best possible CPU, and have a very fast SSD for your Windows page file in case it is needed.

It might also be worth thinking about whether you can split projects that large up into smaller chunks that could be more easily handled and then put back together at the end.

Posted on 2020-07-06 17:20:31