From c54b9cb045ac24b1267a7316e5181f59878df284 Mon Sep 17 00:00:00 2001 From: lordmulder Date: Wed, 30 Nov 2011 01:10:49 +0100 Subject: [PATCH] Updated FAQ document. --- doc/FAQ.html | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/doc/FAQ.html b/doc/FAQ.html index 6ef481d6..0726cf95 100644 --- a/doc/FAQ.html +++ b/doc/FAQ.html @@ -485,16 +485,23 @@ And on systems with 64 cores, the maximum number of parallel instances is 16. 16 thumb

You may wonder why LameXP doesn't always create one instance for each CPU core. In theory, the more instances
-we create, the more CPU cores can be utilized. In reality, however, there are some "shared" resources on the
-computer. And, the more instances we run in parallel, the more processes will be competing for these shared
-resources! More specifically, the amount of main memory (RAM) is limited. Creating a huge number of instances
-in parallel can easily use up all RAM, which will cause the operating system to make heavy use of the page
-file. This can result in HDD thrashing and may significantly hurt the overall performance! But even if there
-is enough RAM available on the system, each encoder or decoder instance needs to access the HDD, e.g. for
-reading the input file and for writing the output file. Thus too many instances will cause an I/O bottleneck!
-If, however, you think that LameXP's choice of the number of parallel instances is too conservative, you may
-overwrite the number of parallel instances on the "Advanced Options" tab. The upper limit is 16 for now.
+we run in parallel, the more CPU cores can be utilized - until all CPU cores are busy and the overall CPU
+usage approaches 100%. In reality, however, there are some "shared" resources on each computer. And, the more
+instances we run in parallel, the more processes will be competing for these shared resources! Specifically,
+the amount of main memory (RAM) is limited. Creating a huge number of instances in parallel can easily use up
+all RAM, which will then cause the operating system to make heavy use of the page file. This can result in
+HDD thrashing and hence may significantly hurt the overall performance! But even in case there is enough RAM
+available on the system, each encoder or decoder instance needs to access the HDD quite frequently, e.g. for
+reading from the input file and for writing to the output file. Thus running too many instances will generate
+more I/O operations than the HDD can handle, which will result in an I/O bottleneck. In this situation the
+processes will spend more and more time waiting for I/O operations to finish - rather then doing useful work.

+In other words: There will always be some point at which creating even more instances will actually slow down
+the overall process! On systems with many CPU cores, this point might be reached BEFORE all cores are busy.
+Even on the Quadcore computer, which is used to develop/test LameXP and which runs "only" four instances in
+parallel, we sporadically notice significant drops of the CPU usage, obviously caused by HDD overstressing.
+If, however, you think that LameXP's choice of the number of parallel instances is too conservative, you may
+overwrite the number of parallel instances on the "Advanced Options" tab - the upper limit is 16 for now.
Finally, note that LameXP only controls the number of instances that will run in parallel, but it does NOT
control how many threads an individual instance will create! Some encoders use "built-in" multi-threading and
thus a single encoder instance may create several threads - LameXP has no control over that.