The mining process and otimizations
Pages 11

Verifiers (miningIntensity) and readers (maxPlotReaders) are each executed in a separate thread and perform their work simultaneously.
The principle is quite simple: the readers read the files in chunks and put their work on a common stack. They do this as long as there is still enough memory (maxBufferSizeMB). The verifiers now wait for the work of the readers and take them as soon as they appear on the stack. All found nonces inside the plot chunk are sent to the miner, which then processes them further.
To optimize the entire process, the three settings maxBufferSizeMB, maxPlotReaders and miningIntensity must be compatible with one another.
| Setting | Too low |
|---|---|
| maxBufferSizeMB | plot readers have to wait for free memory (freed by the verifiers) |
| maxPlotReaders | the stack is filled too slow and verifiers have to wait for work |
| miningIntensity | the stack is cleared too slow and readers have to wait for free memory |
"Too high" would mean that system capacities have been exceeded. In this case, the system would react very sluggishly.
Other things that you have to consider in the calculation:
- CPU limits (cores)
- plot dir types (parallel, sequential, #86) and speed
- operating system (on Linux threads are more lightweight then on Windows)