Сходство потоков OpenMP: Установите 2 потока в программе, сколько ядер работает?

Я написал программу Openmp, запустив ее на двухъядерной машине.

Когда я изменил номер потока с 1 на 2 и с 2 на 4, я не смог увеличить скорость в 2 раза.

2 темы до 4 темы, это гиперпотоки. Hyperthreads, как правило, не могут получить ускорение в 2 раза из-за ограниченности ресурсов.

Тем не менее, 1 поток к 2 потокам, все еще не может увеличить скорость в 2 раза, я запутался в этом. Я искал и нашел концепцию привязки к процессору, но я не могу понять, как работает Openmp.

Когда я использую 2 потока, статическое расписание Openmp организует 2 потока в 1 ядро ​​или 2 ядра?

Функция omp_get_thread_num () не может сказать мне ответ, так как возвращаемое значение равно 0 или 1, но я не знаю, работают ли они на 1 или 2 ядрах.

Спасибо за помощь.

0

Решение

Можно использовать сродство потока с proc_bind:

близко
введите описание изображения здесь

распространение
введите описание изображения здесь

Мастер
введите описание изображения здесь

Я надеюсь, что это поможет вам выбрать подходящий вариант для работы.

1

Другие решения

Других решений пока нет …