如何使用 C# Parallel.For 在以下 OpenMP 代码中实现
OpenMP 代码
#pragma omp parallel
{
float[] data = new float[1000];
#pragma omp for
for(int i = 0; i < 500; i++)
{
for(int j = 0; j < 1000; j++)
{
data[j] =100;
// do some computation using data
}
}
}
我也尝试了以下方法,但这并不是 OpenMP 代码所做的。在 openMP 代码中,它为每个线程分配内存并执行嵌套循环计算。而下面的代码实际上为每个 i 分配内存,而不是每个线程并执行计算。
Parallel.For(0, 500, i =>
{
float[] data = new float[1000];
for(int j = 0; j < 1000; j++)
{
data[j] =100;
// do some computation using data
}
});