を実行する:私の問題は、私はアルゴリズムで合計をやっているとき、ある、それは多くの時間を取ってパラレルIは下の画像をアルゴリズムを実装しようとしている悪い
。してください、私は間違って何をしていますか?
Parallel.For(0, n, i =>
{
Parallel.For(0, n, j =>
{
double sum1 = 0;
double sum2 = 0;
if (i > j)
{
for (int a = 1; a < j - 1; a++)
{
sum1 = sum1 + (matrixL[i, a] * matrixU[a, j]);
}
matrixL[i, j] = (matrixA[i, j] - sum1)/matrixU[j, j];
}
else
{
for (int a = 1; a < i - 1; a++)
{
sum2 = sum2 + (matrixL[i, a] * matrixU[a, j]);
}
matrixU[i, j] = matrixA[i, j] - sum2;
}
});
});
プロファイラを使ってみましたか? –
Parallel.Forの使用によるオーバーヘッドは、両方のループで使用するには多すぎるかもしれません。擬似コードは内部ループが並列であることのみを指定しています。 –
あなたは、時間がかかっていると思われるものにちょっとした文脈を与えることができますか? – juharr