我有一个耗时很长的循环,希望能够并行执行。
伪代码:
for(int n = 0; n < 2048; n++)
{
output_data[n] = function(constant_input_data, n)
}
- 每次迭代的输入数据完全相同。
- 第N次迭代的输出存储在索引为N的数组中。
如何将这个循环平均分成C份,其中C是CPU核心数?
在C#、.net中,最好和最优雅的方法是什么?
我有一个耗时很长的循环,希望能够并行执行。
伪代码:
for(int n = 0; n < 2048; n++)
{
output_data[n] = function(constant_input_data, n)
}
如何将这个循环平均分成C份,其中C是CPU核心数?
在C#、.net中,最好和最优雅的方法是什么?
使用 TPL 的 Parallel.For
Parallel.For( 0, 2048, n=>
{
output_data[n] = function(constant_input_data, n);
});