gpt4 book ai didi

c# - 给定每次迭代的恒定输入数据,如何将 FOR 循环分成 N 个偶数部分以并行执行?

转载 作者:太空狗 更新时间:2023-10-30 00:43:59 26 4
gpt4 key购买 nike

我有一个耗时的循环,我想并行执行。伪代码:

for(int n = 0; n < 2048; n++)
{
output_data[n] = function(constant_input_data, n)
}
  • 每次迭代的输入数据完全相同
  • 第 N 次迭代的输出存储在索引为 N 的数组中。

如何将这个循环分成 C 等份,其中 C 是 CPU 内核数?

在 C#、.net 中执行此操作的最佳和最优雅的方法是什么?

最佳答案

使用 Parallel.For TPL的

Parallel.For( 0, 2048, n=>
{
output_data[n] = function(constant_input_data, n);
});

TPL 尝试生成与第 1 个线程一样多的线程。你拥有的 cpu 内核,然后你的工作被划分为在这些线程上安排的任务。所以它是 可能 x 上的 2048 个任务。 x 为 no 的线程数。核心数。

关于c# - 给定每次迭代的恒定输入数据,如何将 FOR 循环分成 N 个偶数部分以并行执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9060249/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com