Debug multi-threading...

These settings determine how fast parallelized procedures, such as analyses of sound, will be performed on your computer. You can use these settings for tuning e.g. a specific analysis procedure. These settings are "debug settings" that are not remembered across Praat sessions.

Settings

Use multi-threading
Only if you choose on, the computing load will be equally divided among a number of different processors on your computer. If it’s off, you will get single-threading.
Maximum number of threads
determines the number of threads that you would like to use. Most modern computers have multiple processors. One some computers (e.g. AMD64/Intel64) each processor can process two threads; on some other computers (e.g. ARM64) each processor can process one thread. If you supply 0 for this setting, then Praat will use all physical threads once.
Minimum number of frames per thread
as starting up a new thread costs time, it is rarely worthwhile to distribute small numbers of frames over lots of threads. To achieve an optimal speed gain, this number should be tuned via a script, for each type of analysis separately, and perhaps for different sets of analysis settings separately.
Trace multi-threading
returns extra information for each analysed frame in the Info window.

Example

Suppose the "maximum number of threads" is 10, and you want to analyse 500 frames. If the "minimum number of frames per thread" is 20, Praat will divide up those 500 frames over 10 threads of 50 frames each. The first thread will analyse frames 1 to 50, the second thread will analyse frames 51 till 100, the third thread will analyse frames 101 till 150, etc. The tenth thread will analyse frames 451 till 500. All these threads will be executed, in parallel, almost at the same time, which guarantees a significant decrease in analysis time as compared to single-threading.

If the "minimum number of frames per thread" is 100 instead, Praat will divide up the 500 frames over 5 threads of 100 frames each.

The amount of speed-up depends on a number of factors: starting up a thread costs time, and allocating per-thread analysis buffers costs time.


© David Weenink & Paul Boersma 20250721