是否可以在程序执行期间更改线程数

时间:2011-08-09 13:48:53

标签: multithreading openmp

我正在运行一些openMP程序。是否可以在程序执行期间更改线程数。例如,如果程序使用默认线程数执行需要70秒,我可以在30秒后更改该数字。

2 个答案:

答案 0 :(得分:1)

是的,您当然可以使用omp_set_num_threads()每次通过您的(假设)迭代循环动态更改线程数,并使用该加上时序测量来自适应地选择您正在使用的核心数。 / p>

答案 1 :(得分:0)

您始终可以创建新主题。您应该问自己的一个更好的问题是,多线程是否会使您受益。请记住,只是创建新线程不会加速你的程序,在许多情况下,实际上可能造成弊大于利(竞争条件,死锁等)。确保你在进入之前了解线程是如何工作的,从你的问题判断,你没有。穿线是一项男子气概的任务,它将头发放在胸前,但是将它从头上取下来!

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