SMP mit c++ unter linux
-
Nicht nur der Kernel kann das entscheiden - du kannst z.B. Setiathome auf ausgewaehlten Prozessor fahren. Nur hab ich leider schon vergessen, wie das ging.
-
das heißt ich kann sozusagn 2 setifiles parallel bearbeiten??
-
Genau - dafuer musst du allerdings 2* den Seticlient starten und 2 Datenverzeichnisse haben. Lies mal das Readme, das beim Seticlient fuer Linux dabei ist. Da stand es meineswissens drin.
-
SnorreDev schrieb:
Lies mal das Readme, das beim Seticlient fuer Linux dabei ist.
Du meinst http://setiathome.ssl.berkeley.edu/README.unix.txt ? Da steht nur, dass man mehrere Clients gleichzeitig laufen lassen kann. Davon, dass man einen Client auf einem bestimmten Prozessor laufen lassen kann, steht da nichts.
-
@SG1
Hast recht. Nur irgendwo stand es.... vielleicht find ich den Link ja wieder
-
@robak imho kannst du nicht explizit prozessor 1 bzw 2 ansprechen, abgesehen davon das du keine 2 prozessoren hast.
du hast eine CPU mit HT tech. HT steht für hyperthreading.
du kannst also ein programm das auf wunsch einen oder 2 threads anlegt die CPU lastig sind, und beobachte deine CPU dabei zb mit xosview.
-
ich weis das der 2. proz nur "emuliert wird" weil nur einige einheiten auf der cpu doppelt sind.
zurueck zum thema
wie kann ich denn 2. threads parralel laufn lassen?
(auch wenns nur 2 zaehlschleifen sind)kann mir jemand prog.beispiel posten?
btw: hab schon etwas erfahrung mit c++ hab aber bisher nur mit funktione und pointern und so gecodet.
-
falls du was für explizites paralleles rechnen suchst, dann schau dir mal mpi (message passing interface) an......gibts sicher für fortran und c; c++ soll glaub ich erst bei mpi2 voll unterstützt werden und wie weit das schon in implementierungen umgesetzt ist, das kann ich dir nicht sagen.
allerdings kannst du damit auch nicht explizit einen prozessor ansteuern. du kannst der mpi-umgebung sagen auf wie vielen prozessoren du arbeiten willst. dann verteilt die umgebung die einzelnen prozesse auf die vorhandenen prozessoren....hast du nur einen, laufen halt alle prozesse nur auf deinem einen rechner....um zu checken wie die umgebung mit deinem ht-prozessor verfährt, lass nen programm mit zwei prozessoren laufen und beobachte deinen prozessor (wie schon vorgeschlagen) mit xosview o.ä.;
wenn du einfach nur zwei threads parallel laufen lassen willst....naja, dann musst du halt einfach zwei threads starten und laufen lassen. wie das letztendlich als code aussieht, hängt halt auch von deinem betriebssystem ab.
-
@robak
da kümmert sich der Scheduler in der CPU drum, welcher Prozess/Thread auf welcher CPU wann und wie lange laufen kann. Damit hast du absolut nichts am Hut. Du musst nur wie gewohnt Prozesse und Threads erzeugen.
-
axo
also kann ich da eigentlich nix machen
oder bietet assenbler da möglichkeiten???
-
robak schrieb:
oder bietet assenbler da möglichkeiten???
Nein, wie schon mehrfach erwaehnt ist fuer das Scheduling ALLEIN das Betriebssystem verantwortlich.
-
f**k