QT Prozesse und Dualcore
QT Prozesse und Dualcore
Hallo Leute,
meine Frage:
Ich habe eine QT Applikation die verschiedenen Prozesse erzeugt. Werden bei einem dualcore Prozessor von Intel/AMD automatisch beide Kerne benutzt oder kann man das konfigurieren oder ist es gar nicht möglich?
Generell wird gcc (3.x) vewendet und das Zielsystem ist Linux!
Ich habe das System nicht sondern möchte vorerst nur die Informationen haben!
Grüsse Carsten
meine Frage:
Ich habe eine QT Applikation die verschiedenen Prozesse erzeugt. Werden bei einem dualcore Prozessor von Intel/AMD automatisch beide Kerne benutzt oder kann man das konfigurieren oder ist es gar nicht möglich?
Generell wird gcc (3.x) vewendet und das Zielsystem ist Linux!
Ich habe das System nicht sondern möchte vorerst nur die Informationen haben!
Grüsse Carsten
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Ich weiß nicht was Du meinst - Threads haben erstmal nichts mit irgendwelchen Stacks zu tun. Jeder Thread hat seinen eigenen Stack.
1 Prozess hat normalerweise nur einen Thread --> nur auf einem Kern
Hat ein Prozess mehrere Threads können die sich auf mehrere Kerne verteilen.
1 Prozess hat normalerweise nur einen Thread --> nur auf einem Kern
Hat ein Prozess mehrere Threads können die sich auf mehrere Kerne verteilen.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Also eine Applikation läuft als ein Prozess, von diesem Prozess können mehrere Threads erzeugt werden die quasiparallel arbeiten, dieses meiner Meinung nach auf einem Kern! Bei einem dualcore würde der zweite Kern nicht beteiligt. Erst wenn ein zweiter Prozess erzeugt wird ist eine parallele Bearbeitung möglich! (wie gesagt, meine Meinung!)
Dazu lautete meine Frage, ob automatisch die Prozesse (durch das OS) auf die Prozessoren verteilt werden?
Dazu lautete meine Frage, ob automatisch die Prozesse (durch das OS) auf die Prozessoren verteilt werden?
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Zur Aufklärung:
Möchtest du mehrere Kerne oder Prozessoren nutzen musst du Prozesse erzeugen. Threads reichen nicht aus, da Threads nicht ausgelagert werden können, sie laufen auf dem Prozessor auf dem der Parent-Prozess läuft. Parallelisierung von Threads gibt es auch und nennt sich bei Intel beispielsweise Hyperthreading (wurde mit der Core Architektur allerdings wieder abgeschafft, soll allerdings in der nächsten Generation wieder eingeführt werden).
Die Verteilung der Prozesse kannst du nicht beeinflussen, das ist Aufgabe des Betriebssystems. Das Einzige was ich mir vorstellen könnte wäre ein Linux mit einer Erweiterung die genau das ermöglicht (ist mir allerdings nicht bekannt). Unter Windows und MacOS X geht es auf jeden Fall nicht.
SG
Alex
Möchtest du mehrere Kerne oder Prozessoren nutzen musst du Prozesse erzeugen. Threads reichen nicht aus, da Threads nicht ausgelagert werden können, sie laufen auf dem Prozessor auf dem der Parent-Prozess läuft. Parallelisierung von Threads gibt es auch und nennt sich bei Intel beispielsweise Hyperthreading (wurde mit der Core Architektur allerdings wieder abgeschafft, soll allerdings in der nächsten Generation wieder eingeführt werden).
Die Verteilung der Prozesse kannst du nicht beeinflussen, das ist Aufgabe des Betriebssystems. Das Einzige was ich mir vorstellen könnte wäre ein Linux mit einer Erweiterung die genau das ermöglicht (ist mir allerdings nicht bekannt). Unter Windows und MacOS X geht es auf jeden Fall nicht.
SG
Alex
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Aua... schreib hier nicht so einen Müll und informiere dich bitte erstmal.Picaschaf hat geschrieben: Möchtest du mehrere Kerne oder Prozessoren nutzen musst du Prozesse erzeugen. Threads reichen nicht aus, da Threads nicht ausgelagert werden können, sie laufen auf dem Prozessor auf dem der Parent-Prozess läuft. Parallelisierung von Threads gibt es auch und nennt sich bei Intel beispielsweise Hyperthreading (wurde mit der Core Architektur allerdings wieder abgeschafft, soll allerdings in der nächsten Generation wieder eingeführt werden).
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Tja, das ist allerdings falsch. Ein Thread kann außerhalb seines Prozesses nicht existieren, ist auch gut so, sonst hätte er keinen Sinn. Dir muss doch selbst auffallen, dass da in deiner Logik was falsch ist wenn du sagst, dass zwei Threads eines Prozesses auf 2 Prozessoren laufen können.
Der Vorteil eines Threads ist es, dass der Wechsel ohne Prozesswechsel stattfinden kann. Und da willst du den Usern einreden, dass stattdessen ein kompletter Prozessorwechsel inkl. evtl. benötigtes Umkopieren der Speicher notwendig sein kann?
Junge, *du* solltest dich mal informieren, ich mache das beruflich und ich glaube kaum, dass Dokumentation und Inspector mich anlügen
Der Vorteil eines Threads ist es, dass der Wechsel ohne Prozesswechsel stattfinden kann. Und da willst du den Usern einreden, dass stattdessen ein kompletter Prozessorwechsel inkl. evtl. benötigtes Umkopieren der Speicher notwendig sein kann?
Junge, *du* solltest dich mal informieren, ich mache das beruflich und ich glaube kaum, dass Dokumentation und Inspector mich anlügen
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Ich zitiere mal kurz aus Wikipedia weil ich zu faul bin was selbst zu schreiben.
http://de.wikipedia.org/wiki/Multicore-Prozessor :
http://de.wikipedia.org/wiki/Multicore-Prozessor :
... Dabei verteilt das Betriebssystem Prozesse und Anwendungen auf die einzelnen Prozessoren, die diese dann unabhängig parallel ausführen. Wird hingegen nur eine Anwendung ausgeführt, so muss diese für die mehreren Prozessoren parallelisiert werden. Das bedeutet, die Anwendung wird so modifiziert, dass sie komplett oder auch nur Fragmente davon gleichzeitig auf mehreren Prozessoren als Threads ausgeführt werden.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten: