【发布时间】:2016-05-16 11:16:39
【问题描述】:
我正在我的计算机上运行并行计算。我希望程序不要使用所有核心,而是为系统留出一个。 如何将程序中的线程数设置为比处理器上的线程数少一?
OMP_get_max_threads()、OMP_set_num_threads 对不能为我解决这个问题:我已将程序编译为 octave 函数(oct 文件)并通过 octave 解释器调用它。 OMP_get_max_threads() 获得环境变量或其他东西,因此,此变量在调用之间保留,随后对计算例程的调用进一步减小该值。第一次调用使用 3 个内核,第二次调用使用 2 个内核,以此类推。
那么,如何确定硬件可用线程数?
【问题讨论】: