Andi_Rostock
19-04-2006, 07:00
Hallo,
ich muss mit meinem Programm ein realtiv Große Anzahl an Paramatern durchrechnen; 1000+. Dummerweise dauert ein Prog-Aufruf ca 4 Minuten. Auf einerm Single-Core Rechner dauert das dementsprechend Ewigkeiten. Ich habe aber einen Athlon X2 Rechner. Der sollte doch zwei Threads parallel bearbeiten können. Gibt es eine einfache Möglichkeit in C gleich zwei Threads zu starten?
Ich habe mir das etwas so vorgestellt:
int flag;
double Par[1000];
Par[0]=...;Par[1]=...;...
for (i=0;i<500;i++){
// Core 1
flag=runprob(Par[i]);
}
for (i=500;i<1000;i++){
// Core 2
flag=runprob(Par[i]);
}
Ist natürlich Quatsch...
Hat einer von euch Erfahrungen mit verteiltem Rechnen, MPI o.ä.? Ich könnte hier auch einen Cluster verwenden, da muss ich aber leider alles selbst parallelisieren.
Was ich nicht so ohne Weiteres kann (da ich keine Ahnung habe :( ).
Viele Grüße
Andreas
ich muss mit meinem Programm ein realtiv Große Anzahl an Paramatern durchrechnen; 1000+. Dummerweise dauert ein Prog-Aufruf ca 4 Minuten. Auf einerm Single-Core Rechner dauert das dementsprechend Ewigkeiten. Ich habe aber einen Athlon X2 Rechner. Der sollte doch zwei Threads parallel bearbeiten können. Gibt es eine einfache Möglichkeit in C gleich zwei Threads zu starten?
Ich habe mir das etwas so vorgestellt:
int flag;
double Par[1000];
Par[0]=...;Par[1]=...;...
for (i=0;i<500;i++){
// Core 1
flag=runprob(Par[i]);
}
for (i=500;i<1000;i++){
// Core 2
flag=runprob(Par[i]);
}
Ist natürlich Quatsch...
Hat einer von euch Erfahrungen mit verteiltem Rechnen, MPI o.ä.? Ich könnte hier auch einen Cluster verwenden, da muss ich aber leider alles selbst parallelisieren.
Was ich nicht so ohne Weiteres kann (da ich keine Ahnung habe :( ).
Viele Grüße
Andreas