OpenMP Тест производительностиC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 OpenMP Тест производительности

Сообщение Anonymous »

Я разработчик (на Linux) и внедрил рабочий процесс Python, в котором приложение C/C ++, параллельное с OpenMP, называется примерно в 100 раз. Я протестировал рабочий процесс на различные числа потоков. В первой реализации я использовал переменную среды omp_num_threads, чтобы установить количество параллельных потоков, но я наблюдал какое -то странное поведение. Во второй реализации я установил количество параллельных потоков во время выполнения, используя «omp_set_num_threads» и установил omp_num_threads = 1, что привело к лучшей производительности, см. Изображение.
Сравнение производительности < /p>
после краткого исследования с «Strace» я обнаружил, что Lineear увеличивается, вызванная Openmp в первой реализации. По -видимому, каждый поток инициализируется, и память выделяется для каждого потока, что занимает минутку. С 48 потоками и ~ 100 вызовами это происходит ~ 4800 раз. Однако это влияет на другие приложения, которые получают доступ к этой переменной среды. < /P>
Есть ли способ изменить поведение OpenMP? Я разработчик и знаю, что переменная среды установлена, а также влияет на другие приложения. Тем не менее, я также делюсь рабочим процессом с другими людьми, у которых нет опыта разработки и не знакомы с Linux, которые просто хотят выполнить рабочий процесс. (18.1.3) & libomp, тот же результат.

Подробнее здесь: https://stackoverflow.com/questions/797 ... mance-test
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»