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

标签 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 ?

最佳答案

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

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

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

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

关于multithreading - D编程语言中控制并行线程的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17885131/

相关文章:

c++ - 调试会改变多线程 C++ 程序的行为吗?

windows - 如何在一个窗口内运行多个进程的 Delphi 中创建类似 Chrome 的应用程序?

python - 在 python 中并行化这个嵌套的 for 循环

python - 如何并行化 python api 调用?

带有子例程和函数的 Fortran OpenMP

multithreading - Cython Prange失败并显示致命Python错误: PyThreadState_Get: no current thread

python - 如何使用 multiprocessing 遍历一个大的 URL 列表?

c++ - 谐波级数和 c++ openMP

c++ - 内部的 openmp 延迟

c++ - std::thread::thread 试图引用已删除的函数