データが格納された配列x []があります。また、 "システム状態" c []の配列があります。プロセス:C#/ C++での同期並列処理
for(i = 1; i < N; i++)
{
a = f1(x[i] + c[i-1]);
b = f2(x[i] + c[i-1]);
c[i] = a + b;
}
2つの並列スレッドを使用して2コアシステム上のf1
とf2
の値を見つけるために、任意の効率的な方法はありますか?私は(擬似コードで)以下の意味:
thread_1
{
for(i = 1; i < N; i++)
a = f1(x[i] + c[i-1]);
}
thread_2
{
for(i = 1; i < N; i++)
{
b = f2(x[i] + c[i-1]);
c[i] = a + b; //here we somehow get a{i} from thread_1
}
}
f1
とf2
は所望のスピードアップがX2についてです、時間消費ではなく、何回も計算する必要があります。グラフィカル表現するための図を参照してください:Windows用のコード例を探してい
。 c[i-1]
が利用可能
c[i]
とき
F1、F2が非常にhavyている場合にのみefficienするwoulのsyncronizationのオーバーヘッドになるあまり、これはC#の**と** C++をタグ付けされているのはなぜ並列実行 – gabba
の利益よりも?どの言語を使用していますか? –
言語の選択は、タスクをより効率的に解決できるものによって異なります。 – carimus