Forum

Author Topic: CPU multi-core questions  (Read 9385 times)

paulm

  • Newbie
  • *
  • Posts: 9
    • View Profile
CPU multi-core questions
« on: May 30, 2018, 04:33:00 PM »
Hi,

I'm trying to debug some performance issues between different nodes. I'm seeing the camera alignment phase of the Align Photos step only using 1 CPU core (i.e. no mult-threaded and/or GPU computations). It this expected behaviour? I can't seem to find any documentation on this topic. This is with 1.4.2 Pro under Linux.

Secondly, are there any performance limitations in demo mode? Due to having only a single professional license I am running one test in activated mode on one node and another in demo mode on a different node.

Regards,
Paul

Alexey Pasumansky

  • Agisoft Technical Support
  • Hero Member
  • *****
  • Posts: 15673
    • View Profile
Re: CPU multi-core questions
« Reply #1 on: May 30, 2018, 04:56:46 PM »
Hello Paul,

Which sub-step of Align Photos stage you are speaking about: feature points detection, preselection, image matching, scene structure estimation? Also what is the size of the dataset and processing parameters used?

Actually, all these stages are well parallelized, so I can only assume that the dataset is too small, so you are not able to see the multithreading.
Best regards,
Alexey Pasumansky,
Agisoft LLC

paulm

  • Newbie
  • *
  • Posts: 9
    • View Profile
Re: CPU multi-core questions
« Reply #2 on: May 30, 2018, 05:30:31 PM »
The step is "Estimating camera locations", sorry for misremebering the name. The scene has 199 photos of 4000x3000 pixels, also containing 25 markers, no masks. Settings: accuracy = high, generic preselection enabled, reference preselection enabled, 40k key point limit, 4k tie point limit, adaptive camera model fitting.

The highest I'm seeing is around 108% CPU out of a possible 1600% (i.e. 16 cores). The node has 32 GB RAM and also 2 Tesla K40m's.

paulm

  • Newbie
  • *
  • Posts: 9
    • View Profile
Re: CPU multi-core questions
« Reply #3 on: May 31, 2018, 11:49:06 AM »
So I did some further testing and it seems I DO get multi-threaded computations when processing the same dataset on my laptop (4 cores with HT + Quadro M1000M), while on a more powerful compute node (16 cores + 2x Tesla K40m) I once again see the single-core computations. I use a Python script to make sure I'm doing the exact same processing on these two nodes and the single-core part is due to chunk.alignCameras().

The matchPhotos() step is roughly 2.5 times faster on the compute node, but after that performance switches to single-core.

Alexey Pasumansky

  • Agisoft Technical Support
  • Hero Member
  • *****
  • Posts: 15673
    • View Profile
Re: CPU multi-core questions
« Reply #4 on: May 31, 2018, 11:54:00 AM »
Hello paulm,

Can you share the project in PSZ format saved after the processing (with just alignment results and markers) with support@agisoft.com, so that we can try to reproduce the same behavior basing on the matching points that are already in the project?
Best regards,
Alexey Pasumansky,
Agisoft LLC

paulm

  • Newbie
  • *
  • Posts: 9
    • View Profile
Re: CPU multi-core questions
« Reply #5 on: May 31, 2018, 03:22:11 PM »
Hi Alexey,

I just sent the dataset as a .psz file. This contains the results of doing Workflow -> Align Photos from the GUI. The "Estimating camera locations" step used only 1 CPU core in this case.

Paul