It turns out, we have some very sizeable speed increases available to us today, just using a neat trick!
Recently, @Bzuco promoted the method of running Metashape using network processing, but doing it locally, just on your one workstation, but then spawning multiple worker nodes!
https://www.agisoft.com/forum/index.php?topic=16384.msg70457#msg70457Which is based on a trick for processing 'HUGE' projects, as in Geospatial Tips' YouTube video:
https://www.youtube.com/watch?v=BYRIC-qkZJ8This seems to alleviate much of the issue we all recognise, whereby Metashape seems to dwell for ages, using only 10-20% of the processor or GPU. It's simply not pegging the CPU/GPU at 100% all the time, like we'd hope it would.
Obviously many stages of Metashape's processing is limited to a single thread, but other stages that aren't still seem to not push the hardware to 100%. But it looks like running multiple nodes on the one workstation does allow us to push it to 100% more often.
Doing some trials with Metashape Pro and the Networking feature, i've also run tests, increasing the node count from 1 to 2, to 3, to 4... noting the processing times.
Just use metashape-server.exe and the right arguments to start up one server, and then 6 nodes. All using your workstation's IP address. Then use the Network Monitor to connect to it, to unpause, pause nodes when needed.
For aligning, with my crappy old Thinkpad P51 with a 5700 XT eGPU, i hit a hard wall at 6 nodes.
For building the model, it can only handle 2 nodes, as it fills up the VRAM and massively slows down if it has to swap VRAM to RAM.
So for the benchmark test i just ran, i got the following for the Match & Align Photos job:
Normal: 2:12 + 0:39 = 171 mins
8 Nodes: 1:20 + 0:38 = 119 mins
43% faster!!!
So, could Metashape adopt multiple local worker/nodes?
For each sub-task, the optimal number of nodes is spawned to complete the task, maximising the utilisation of the hardware.
Either MS just dynamically adds another node if it's not at 100% utilisation, or there's still VRAM available, or kills one if it's swapping... or perhaps MS runs some tests to 'characterise' the hardware in use, and sets the numbers of nodes it'll use for each sub-task?
This would benefit Metashape Std and Pro. Where Pro remains able to connecting to the different IP addresses on the network... And each client running its own multiple local nodes.
And using multiple 'workers' is very standard trick... FileZilla runs multiple fzsftp.exe workers to do up to 10 concurrent downloads. Massively speeding up the transfer of smaller files, or if the server pings are crap... And Handbrake spawns multiple HandBrake.worker.exe workers to concurrently transcode multiple videos at once on CPUs with large core counts, as transcoding doesn't scale linearly with cores. This allows for faster transcoding of the batch of files.
I'd guess that every Metashape user/customer, and Agisoft themselves would simply love it to just process the jobs as fast as possible!