Regarding the max-concurrency parameter?

Doraemon

Regarding the max-concurrency parameter:

The official specification states that processing 2‑megapixel photos results in a peak memory usage of 1 GB per thread.

Questions

  1. Is there no quantity limit for these 2‑megapixel photos? Does the memory consumption stay the same regardless of how many photos are processed?
  1. Can this be interpreted as 1 thread consuming 1 GB RAM, and 4 threads consuming 4 GB RAM accordingly?
  1. When handling 20‑megapixel photos, does each thread occupy 10 GB of memory?
  1. I previously encountered an Out‑of‑Memory (OOM) error. My Docker container was allocated resources of 32 GB RAM and 10 CPU cores, while processing 5‑megapixel images. Following the above ratio, each thread would use 2.5 GB RAM, and 10 threads would total 25 GB, which theoretically should not trigger OOM. However, the images I processed are four‑band multispectral photos. Does that mean the total memory requirement for 10 threads becomes 2.5\times4\times10 = 100\ \text{GB}?

1 Reply

Airwolf Best answer

The amount of memory needed isn't necessarily a constant based only on image size, those are really kind of estimate numbers. Consumption varies depending on stage and settings. feature-quality and pc-quality heavily affect the amount of RAM needed, it seems to increase exponentially rather than linearly as you go higher.

I attached a pic that could give you a frame of reference, these were just regular photos.

If the dataset is something you can share, I could run it to find out what it consumes ...

💛 1

Need more help?

This discussion happened in the WebODM community Discord. Join and ask your own question.

Join View Original Thread

This page mirrors a public discussion from the WebODM Discord. How to request a removal.