Anzahl CPU/Kerne ermitteln

22/03/2009 - 12:57 von Norbert Melzer | Report spam
Hi Gruppe!

Ich habe eine Klasse, die in einer Collection eine Handvoll aufgaben
zugewiesen bekommt. Diese Aufgaben soll sie dann bestimmten Funktionen zu
ordnen und diese in einem Thread starten. Um nicht am Ende mit 200 Threads
da zu stehen, die sich gegenseitig die CPU-Zeit wegnehmen wollte ich jetzt
mal bei euch anfragen, ob es eine Möglichkeit gibt ohne große Klimmzüge an
die Anzahl der CPUs/CPU-Kerne im System zu kommen, und ob es eine
faustformel gibt, wie viele Threads man dann pro Kern startet.

Die Aufgaben dieser Funktionen reicht von simplen Rechenaufgaben bis hin zu
(beinahe) Endlosschleifen (extremes zB suche eine Primzahl mit 10 stellen,
realistischer wàre hier Pathfinding über mehrere Routen zu nennen, mit
vergleich der Routenlànge, Prioritàten der zu erreichenden Ziele, etc.)

Vielen Dank für Eure Hilfe bereits im Vorraus!
Norbert
 

Lesen sie die antworten

#1 Frank Dzaebel
22/03/2009 - 13:22 | Warnen spam
Hallo Norbert,

... anfragen, ob es eine Möglichkeit gibt ohne
große Klimmzüge an die Anzahl der
CPUs/CPU-Kerne im System zu kommen



[Environment.ProcessorCount-Eigenschaft (System)]
http://msdn.microsoft.com/de-de/lib...count.aspx



, und ob es eine faustformel gibt,
wie viele Threads man dann pro Kern startet.



möglichst alle Prozessoren gleich auslasten.

Ein paar weiterführende Infos ggf.:

[Parallel LINQ: Ausführen von Abfragen auf Mehrkernprozessoren]
http://msdn.microsoft.com/de-de/mag...63329.aspx

[MSDN Webcast Serie: Parallel-LINQ]
http://www.microsoft.com/germany/ms...06-02.mspx

[Parallel Computing: Parallele Programmierung, Parallelitàt, Processing,
Multi-Core | MSDN Online Deutschland]
http://msdn.microsoft.com/de-de/con...fault.aspx


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen