Wow good question. Asked myself the same.
In my case most projects have 1000-2000 images @ 20MP with an occasional project at 3000+ images.
After doing some testing and benchmarking (documented here: Hardware Recommendations – CPU cores, graphics card, CUDA, NVIDIA, memory, RAM, storage) my sweet spot is a desktop PC with 8-16 cores, 96Gbyte of memory and a CUDA capable graphics card (in this case a Geforce GTX 1660 with 6Gb VRAM).
On another occasion I ran 1500 images @ 45MP and a 8 core desktop PC with 64 Gbyte outpaced an AMD Epyc 64 core server with 512 Gbyte of memory by several hours. At that resolution it was about 36Gbyte of data to be processed. Less images but higher resolution then the dataset you describe.
Question to you would be: what is your budget and your skills?
Are you a technician or is there a technician on your team?
I think a workstation or server setup would be great, if you can afford it and know how to handle it. Especially high core count Threadrippers with plenty of memory should be rockets, since most server CPU are just running at very low frequencies. A 128 core @ 3Ghz server CPU with plenty of memory will handle the job, but still may take days to compute bigger tasks or even small tasks with demanding settings.
Another essential question is time:
Can you afford to wait 24-48 hrs on a project?
If yes, a modern desktop PC with a modern CPU (starting with AMD Ryzen 5000 or Intel 12000 series), 128Gb of memory and a fast NVMe will have you covered.
At this point in time I could not tell you which of the following systems would be faster:
| Desktop PC | Workstation | Server |
|---|---|---|
| Intel 13900K @ 5Ghz | AMD Threadripper 64 core @ 4.3Ghz | AMD Epyc 128 core @ 3Ghz |
| 128Gb DDR5 memory | 256Gb DDR4 memory | 512Gb DDR5 memory |
All of the those 3 setups will be able to handle the task. But which one is faster?!
Modern desktop CPUs have already tons of cores at impressively high frequencies.
There are again and again questions about best hardware in the forum and since I am especially into computer hardware I have been following attentively what people are writing. I also tried to compare some systems but haven’t found many people willing to investigate deeper.
Since WebODM uses many different software components (openSfM, openMVS, PDAL etc.) it seems to be a mix of:
- many CPU cores (8+)
- high core clocks (>4Ghz)
- plenty of memory and NVMe swap
that affect processing time the most.
GPU seems second to all that as you can see in the post I linked to further up.
I am still researching this as I have time available. Roaming some server forums to find somebody who would be willing to run some datasets on either a Threadripper workstation or a 64 core+ server.
Sorry for not having an answer, but if I would want to compute 4000 image datasets on a regular basis, my tendency would clearly go towards a Threadripper system starting at 256 Gbyte of memory with expansion possibility.
If that is not in the budget a latest generation desktop PC with maxed out memory would also get it done but I would expect 24-96 hours of processing time.
P.S.: But as you can also read here, some people are used to let their machines chew through a dataset for days. And if you need a result quickly you could run it first with resized images, which can speed things up immensely and while you can already work with that data the full resolution version could be churned through in the background.
P.P.S.: when I say latest generation desktop PC, I actually also mean last generation. For true multi core capable software the gains between generations isn’t as much as the increase in core count.
That means that even a Intel Core i9 12900K would do as well as a 13900K but saves you quite a bit of money (same for AMD side).