Wie definiere ich die auszuführenden CPU?
Genau so wie ich es ein Posting weiter oben beschrieben habe - mit runon
Beispiel:
msalfer@octane:~> runon 0 mozilla
Startet mozilla auf der ersten CPU. Ist aber wie auch oben gesagt kontraproduktiv, da dem Scheduler Restriktionen auferlegt werden. Sinnvoll ist das nur, wenn ein Thread dauerhaft Rechenleistung braucht und nicht durch Prozessorhüpferei Leistung verbraten werden soll. Einer normalen Applikation so einer Restriktion zu unterziehen ist Schmarrn, es wird immer der Prozessor hergenommen, der gerade weniger zu tun hat.
Wenn man lustig ist, könnte man diesen Scheduler ja so bauen, dass er eine exakt symmetrische Prozessorlast erzeugt, aber dann würde durch das andauernde hüpfen der Prozesse zwischen den Prozessoren wieder Leistung einfach so verbraten.
Von den alten Crays habe ich mal gehört, dass die diese symmetrische Last auf den Prozessoren auch mit nur einem Prozess erzeugt haben, damit die thermische Verlustleistung auch gut in der Maschine verteilt ist...
Ich habe gerade mal versucht, ein OctaneDemo ein 2. mal zu starten. Aber eigentlich hat wieder eine CPU mehr zu tun als die andere.
Wenn die Demo Grafiklastiger ist, liegt der Flaschenhals in der Grafik. Und dann ist der Prozessor nicht 100%-ig ausgelastet, somit kann der erste Prozessor auch noch die zweite Instanz der Demo mitübernehmen.
Starte mal setiathome, dann werden beide CPUs gleichzeitig zu 100% ausgelastet.
cu,
Michael