wäre doch theoretisch denkbar, dass der Compiler die Codezeile f(a(), b()); auf einem Dualcore System .. a() auf einem Prozessor und b() auf anderem berechnet. Theoretisch .. kennt jemand dies auch aus Praxis? Und wenn welche C Compiler tun das? gruss, daniel
Das geht zwei Methoden auf einem Dualcore gleichzeitig zu berechnen. Aber nicht mit einem "normalen" C-Compiler. Der muss parallelisieren können. Auf share-memory-Systemen, wie einem Dualcore, nimmt man dafür open-mp. Ob das der gcc oder ein anderer Standardcompiler kann, kann ich Dir net sagen. Hoffe das hilft!
Die einfachste Methode sowas hinzubekommen ist die paralelle Übersetzung von jeweils zwei Modulen. M$s Build-Tool macht das standardmäßig.
@Uhu: Es geht nicht darum, zwei Files gleichzeitig kompilieren zu lassen, dass kann make auch seit urzeiten (make -j4 ...) oder mehrere Rechner gleichzeitig an einem Projekt kompilieren zu lassen (z.B. mit distcc, dmake, ...) Sondern darum, dass das kompilierte Programm zur Laufzeit automatisch neue Threads startet, die dann einzelne Funktionen berechnen. In C ist sowas schwierig, obwohl GCC mit __attribute__(_pure_) schon gewisse Grundlagen dafür mitbringt. In Sprachen ohne Seiteneffekte (Haskel, SML, ...) geht das deutlich einfacher, da gibt es auch entsprechende automatisch parallelisierende Compiler.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.