Parallel processing

Several tests have high computational demands and thus require mentionable amounts of time for execution. Especially permutation based test require enormous amounts of time when running high numbers of permutations cycles (thousand or more). Therefore the efficient use of multi-processors can reduce the amount of elapsed time for a test.
The most simply way of using multiprocessing could be to run two instances of the same program with two different data sets or two different analysis types of the same dataset. Here the operating system would assign each instance of the program to a different CPU. The disadvantage would be, that memory consumption for data handling would increase by the number of processes. The total execution time of a single test would not be shortened, but two or more processes might be performed in the same time period.

To avoid this problem, SUMO performs an internal multi-threading (different threads are assigned to free CPUs in a multiprocessor environment by the operating system). The loaded dataset is internally split into as many parts as threads (=CPUs) are existing, reducing the execution time by roughly the same factor while keeping memory consumption constant. This will result in reduction of execution time by roughly a factor 2 (dual core single CPU) up to a factor of eight (quad-core double CPU-system).

To set the number of threads, select:

Select the requested number of threads.


It does not help to select more threads, than CPUs (cores) are installed in the computer. E.g. 2 threads on single core single cpu will slow down overall execution, whereas 2 threads on a dual core will speed up by factor 2.
Selecting as many threads as CPUs (cores) are available will slow down any other operations on the computer. Thus it might be useful to e.g. select three threads on a quad-core CPU: three cores will perform the statistics test, reducing the execution time by factor three, while the fourth core will be freely available for interactive work.
Only CPUs (cores) visible by the Operation system can be used. E.g. distribution of an analysis onto 4 different computers (each running its own Windows) is not possible.

Multi threading settings are memorized and reused at next program launch.



last edited 08.05.2007