http://pastebin.com/YMS4ehRj
^ Это моя реализация параллельной сортировки слиянием. По сути, я делаю следующее: для каждого разбиения первая половина обрабатывается потоком, тогда как вторая половина является последовательной (то есть), скажем, у нас есть массив из 9 элементов, [0..4] обрабатывается потоком 1, [0 ..1] обрабатывается потоком 2, [5..6] обрабатывается потоком 3 (см. Разъяснения в исходном коде).
Все остальное остается таким же, как слияние. Но проблема в том, что это работает намного медленнее, чем сортировка слиянием, даже медленнее, чем обычная пузырьковая сортировка! И я имею в виду для массива 25000 INT. Я не уверен, где узкое место: это блокировка мьютекса? Это слияние?
Есть идеи, как сделать это быстрее?