Ich habe ein Array x [] mit Daten. Außerdem gibt es eine Reihe von "Systemzuständen" c []. Der Prozess:Synchroner paralleler Prozess in 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;
}
Gibt es eine effiziente Möglichkeit, die Werte von f1
und f2
auf 2-Core-System mit zwei parallelen Threads zu finden? Ich meine die folgenden (in Pseudocode):
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
und f2
keine Zeit consumptive sind, müssen aber oft berechnet werden, so gewünschte Beschleunigung über x2 ist. Siehe Diagramm zur grafischen Darstellung:
der Suche nach Code-Beispiele für Windows.
Es wird nur efficien sein, wenn f1 und f2 sehr havy und syncronization overhead weniger als Gewinn von parallelem Lauf sind – gabba
Warum ist dies markiert C# ** und ** C++? Welche Sprache verwendest du? –
Die Auswahl der Sprache hängt davon ab, was die Aufgabe effizienter lösen kann. – carimus