| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Параллельный алгоритм возведения в степень |
| Автор: Revares 14.12.2010, 20:41 |
| Всем привет! Возможно ли распараллелить операцию возведения целого числа в дробную степень? Есть ли алгоритм быстрого возведения целого числа в дробную степень? |
| Автор: NumLock 21.12.2010, 09:50 | ||
| a^(p/q) —суть извлечение корня q-той степени из a^p. Возведение числа в p-тую степень можно распараллелить, хотя и не очень эффективно (равномерность загрузки процессоров будет уменьшаться с каждой итерацией). a^p = a*a*a*...*a (p раз). Можно задействовать floor(n/2) процессоров, вот так: a^p=(a*a)*(a*a)*...*(a*a). Все что в скобках вычисляется параллельно. На OpenMP это будет выглядеть примерно так:
|
| Автор: maxim1000 21.12.2010, 09:58 |
| а нужно ли? неужто так много времени занимает? просто чем меньше распараллеливаемый кусок, тем большую часть занимают накладные расходы на общение между потоками и т.п. или числа длинные? |