Change in multithreading behavior on calculation
Posted: Wed Feb 21, 2007 9:28 am
Would it be possible to alter the multi threaded calculation so that a thread when it is done with the calculation of its current block goes to the next block and calculates this one instead of waiting until the other running calculations of "partner blocks" are finished?
Currently this raises the calculation time dramatically, because the slowest block is setting the time needed to calculate X blocks parallel.
With small blocks the issue is not really important, but with 4096x4096+ it gets a serious problem, if the slowest block takes 3-4 mins to finish while the fastest took 30 second.
I currently have a Core Duo but plan to get a desktop system later this year with a Q6400 where this problem would cause even more wasted time as still the slowest of the 4 threads would force the other 3 cores and thus threads to wait.
Currently this raises the calculation time dramatically, because the slowest block is setting the time needed to calculate X blocks parallel.
With small blocks the issue is not really important, but with 4096x4096+ it gets a serious problem, if the slowest block takes 3-4 mins to finish while the fastest took 30 second.
I currently have a Core Duo but plan to get a desktop system later this year with a Q6400 where this problem would cause even more wasted time as still the slowest of the 4 threads would force the other 3 cores and thus threads to wait.