Что ж, для этого примера вы можете суммировать ряды (если у меня есть скобки в нужных местах):
(-1)^i * (x^(2i + 1))/(2i + 1)
Затем на процессоре 1 из 8 вычисляем сумму слагаемых для i = 1, 9, 17, 25, ...
Затем на процессоре 2 из 8 вычисляем сумму слагаемых для i = 2, 11, 18, 26, ...
и так далее, в итоге суммируем частичные суммы.
Или, вы можете сделать, как вы (почти) предлагаете, дать i = 1..16 (скажем) процессору 1, i = 17..32 для процессора 2 и т. Д., И они могут вычислить каждую последующую мощность х из предыдущего. Если вы хотите, чтобы в серии было более 8х16 элементов, то сначала назначьте больше для каждого процессора.
Я сомневаюсь, стоит ли вообще для этого примера распараллеливать, я подозреваю, что вы достигнете точности с двойной точностью на 1 процессоре, пока параллельные потоки все еще пробуждаются; но это всего лишь предположение для этого примера, и вы, вероятно, можете найти много серий, для которых распараллеливание стоит усилий.
И, как уже сказал @Mark Ransom, лучший алгоритм должен каждый раз превосходить грубую силу и множество процессоров.