Можно ли изменить количество потоков во время выполнения программы? - PullRequest
0 голосов
/ 09 августа 2011

Я использую несколько программ openMP. Можно ли изменить количество потоков во время выполнения программы. Например, если программе требуется 70 секунд для выполнения с использованием числа потоков по умолчанию, могу ли я изменить это число, скажем, через 30 секунд

Ответы [ 2 ]

1 голос
/ 09 августа 2011

Да, вы, безусловно, можете использовать omp_set_num_threads () , чтобы динамически изменять количество потоков каждый раз через ваш (скажем) цикл итераций, и использовать это, а также измерения времени, чтобы адаптивно выбирать количество ядер, которое вы ' повторное использование.

0 голосов
/ 09 августа 2011

Вы всегда можете создать новую тему.Лучший вопрос, который вы должны задать себе, - принесет ли вам пользу многопоточность.Помните, что создание новых потоков не ускорит вашу программу и во многих случаях может принести больше вреда, чем пользы (условия гонки, взаимоблокировки и т. Д.).Убедитесь, что у вас есть понимание того, как работает многопоточность, прежде чем переходить к нему, чего, судя по вашему вопросу, нет.Потоки - это мужественная задача, она укладывает волосы в грудь, но снимает их с головы!

http://www.inf.uni -konstanz.de / dbis / training / ss06 / os / ch4.pdf

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...