Entwickler-Ecke
Windows API - Threads gezielt auf CPUs / Hyperthreads verteilen
Alstar - Mo 24.07.06 20:51
Titel: Threads gezielt auf CPUs / Hyperthreads verteilen
Hallo Leute!
Ich möchte eine Software programmieren die auf allen denkbaren Hardwaresystemen möglichst effizient läuft. Dazu müsste ich verschiedene Threads (bei Multicore-Systemen) auf die einzelnen CPUs bzw. (bei Hyperthreading-Systemen) auf die verschiedenen Hyperthreads. Nun soll das aber nicht beliebig geschehen, sondern möchte ich, dass ganz bestimmte Threads auf der zweiten oder dritten Schiene laufen.
Nun meine Fragen. Erstens: Ist es möglich die Threads manuell auf die Cores zu verteilen? Zweitens: Wenn ja, wie? Drittens: Wie finde ich heraus, ob ein System einen Prozessor, einen Hyperthreading-Prozessor oder mehrere Prozessoren (Anzahl) hat?
Danke schonmal!
Alstar
Moderiert von
Motzi: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mo 24.07.2006 um 21:00
Spaceguide - Mo 24.07.06 21:00
Schau dir mal die Funktion SetThreadAffinityMask an.
Alstar - Mo 24.07.06 21:05
Okay, vielen Dank!
Werden die Hyperthreads des P4 auch als eigener Prozessorkern angesehen?
Alstar
Motzi - Mo 24.07.06 21:05
Anzahl CPUs: GetSystemInfo
Thread auf bestimmten CPUs ausführen: SetThreadAffinityMask und SetThreadIdealProcessor
Viruteller Prozessor (Hyperthreading) oder realer Processor: musst du mal googlen, da gabs IMHO ne ASM-Operation..
Motzi - Mo 24.07.06 22:44
Nein, es gibt auch eine spezielle CPUID Instruction die dazu gedacht ist virtuelle von physikalischen Prozessoren zu unterscheiden, um Multitasking zu optimieren, da ein virtueller Prozessor schließlich nicht dieselbe Leistung wie ein realer hat..!
Edit: ein Link dazu:
http://www.intel.com/cd/ids/developer/asmo-na/eng/211924.htm?prn=Y
Alstar - Di 25.07.06 21:59
Okay. Vielen Dank für die Hilfe, das wird mir erstmal weiterhelfen :wink:
Alstar
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!