2014-01-28 2 views
0

Поскольку параллельные программы могут потребовать разные уровни параллелизма (например, количество потоков) в разных блоках кода, есть способ динамически изменять количество потоков в pthread, чтобы всегда поддерживать оптимальный параллелизм во время выполнения программы?Динамическое изменение количества потоков в pthread

Мы можем помещать ненужные нити в сон, но при этом возникают проблемы. Во-первых, необходимо изменить барьеры для синхронизации различного количества потоков. Во-вторых, некоторые параллельные программы назначают данные отдельным потокам во время инициализации. Распределение данных также необходимо изменить с помощью динамического номера потока.

Любые идеи или предложения? Спасибо!

ответ

0

Лучшее, что я могу придумать, - всегда пытаться использовать потоки пула или потоки приложений.

Те задачи, которые должны выполняться в течение срока действия приложения, начинаются один раз и никогда не прекращаются.

Все остальные задачи поставлены в очередь на опрос потоков, который является достаточно большим, что маловероятно, чтобы какая-либо задача оставалась в очереди, в то время как ядро ​​было свободным.

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