2012-05-07 3 views
0

Я разрабатываю научный код, поэтому, конечно, скорость имеет значение. Теперь из-за этой переносимости это не проблема, и поэтому я знаю, сколько потоков openmp я буду иметь уже при компиляции программы. Могу ли я использовать эту информацию для выполнения любой дополнительной оптимизации? Если да, как мне это сделать?Оптимизация OpenMP для определенного количества потоков

Поскольку было указано, что этот вопрос очень широк. Я хочу немного уменьшить его до автоматического, т. Е. Оптимизации компилятора. Поэтому установка флагов компилятора или подобных вещей.

Приветствия

-A

+0

это очень широкий вопрос. – Anycorn

+0

Хорошо, я немного уменьшил это. – Azrael3000

+0

Он все еще слишком широк. На данный момент лучший ответ: ** это зависит от кода **. –

ответ

0

Ну, вы можете изменить код таким образом, чтобы его можно разделить на п независимых областей (п = нет. Потоков). U должен предпочесть использование разделов. Они обеспечивают лучшее ускорение по сравнению с параллельными для циклов из-за уменьшения связи между процессорами.

+0

Разделы не быстрее, чем 'для расписания (статические)' work-share construct. –

+0

Ну, я реализовал некоторые коды, где я использовал как параллельные, так и секции (нечетные и четные циклы), и разделы, казалось, были немного быстрее. Это было довольно давно, возможно, это сделало это для этого конкретного кода. – haxor

Смежные вопросы