AzureでWebロールでホストしているwcfサービスを作成しました。ロールのインスタンスは非常に大きく(1つのインスタンスのみ)、8つのコアがあります。サービスには2つのメソッドがあります。メソッドは行列の乗算を計算します。1つはシーケンシャルプログラミングを使用し、もう1つはパラレルを使用します(Parallel.Forを使用)。その結果、シーケンシャルプログラミングはパラレルよりも高速になります。私は何か間違ったことをしていますか?プロセッサの動作を監視していて、並列計算を開始すると、すべてのコアが使用されますが、結果は良くありません...並列プログラミング行列の乗算のコードは次のとおりです。
ParallelOptions p = new ParallelOptions();
p.MaxDegreeOfParallelism=8;
Parallel.For(0, n,p, i =>
{
for (int j = 0; j < n; j++)
{
suma = 0;
for (int k = 0; k < n; k++)
{
suma = (matricaA[i, k] * matricaB[k, j]);
}
proizvod[i, j] = suma;
}
}