控制D编程语言中的并行线程数

时间:2013-07-26 15:17:35

标签: multithreading parallel-processing openmp d

我正在学习D语言,因为我对它支持并行性感兴趣。这是我项目中的并行代码段:

import std.parallelism;


foreach (node v; taskPool.parallel(std.range.iota(z))) {
    // call here
    handle(v);
}

如何控制并行工作的线程数?是否有等效的OpenMP函数omp_set_num_threads

1 个答案:

答案 0 :(得分:6)

您可以在第一次使用taskPool之前设置defaultPoolThreads来设置线程数,但它不允许您动态更改它。

http://dlang.org/phobos/std_parallelism.html#.defaultPoolThreads

此外,您可以显式创建新的TaskPools,而不是使用默认值。根据您的尝试,这也可能是一种选择。

http://dlang.org/phobos/std_parallelism.html#.TaskPool.this