Re: FreeBSD 5.3-STABLE, SMP und Ports kompilieren

From: Bernd Walter <ticso(at)cicely12.cicely.de>
Date: Thu, 24 Feb 2005 13:19:40 +0100

On Thu, Feb 24, 2005 at 01:02:51PM +0100, Oliver Brandmueller wrote:
> Hallo.
>
> On Thu, Feb 24, 2005 at 12:15:34PM +0100, Marian Hettwer wrote:
> > Wenn ich jetzt aus den Ports ein Programm bauen lasse ist die CPU (oder
> > sind die CPU's) nur bei maximal 25% Auslastung. Das stimmt mich etwas
> > traurig.
> > Der Rechner hat sonst nichts zutun und sollte doch daher bitte seine CPU
> > Zeit deutlich besser nutzen, oder ?
> >
> > Ist das ein Problem von SCHED_4BSD ? Ich könnte ULE anstellen, dann habe
> > ich aber beim Ports kompilieren ganz andere Probleme ...
> >
> > Wie überrede ich diese Maschine nun bitteschön mehr CPU Zeit fürs Port
> > kompilieren zu verbraten ?
>
> 2 * echter Prozessor plus HTT = 4 virtuelle Prozessoren.
>
> Port bauen ohne "-j 4" == 1 make/cc/... Prozeß.
>
> Es wird ein Prozessor von vieren benutzt.
>
> 100% / 4 == 25%
>
> In Wirklichkeit sind das 50%, weil Dir ja HTT keine echten weiteren
> Prozessor schenkt (ist ja kein Dual Core), sondern Dir salopp gesagt nur
> etwas beim Task-Switching unter die Arme greift. Nur ist 4BSD und top an
> dieser Stelle nicht sonderlich HTT-aware, so daß es das nicht korrekt
> ausrechnen kann.

Naja - man müsste da die Piepelineausnutzung einbeziehen, aber
leere Pipelines kann man ja nicht pauschal als verfügbar betrachten.
Schwierige Sache sinnvolle Werte zu bestimmen.

> Aus meiner Erfahrung bei stark frequentierten Spam-Filtern mit ähnlicher
> Konfiguration: Ob Du HTT an oder aus hast bringt Dir außer dem Stolz auf
> die zwei zusätzlichen Prozessoren in der C-Spalte von top im echten
> Leben keinen meßbaren Unterschied. Es mag Applikationen geben, wo sich
> das auszahlt, allein gefunden hab ich die noch nicht.

Naja - der Witz ist, dass du unterschiedliche Aufgaben hast.
Die beiden virtuellen CPU teilen sich die gleichen Pipelines.
Wenn nun beide integer Pipelines brauchen hast du nur dann was davon,
wenn die Software abhängigkeiten hat, sodass nicht alle Pipelines
benutzt werden können.
Wenn du hingegen eine Anwendung hast, die Integer Pipelines und eine
hast, die weitestgehend Floatingpoint Pipeline nutzt, dann kommen die
sich nur gering in die Quere.
Das dumme dabei ist, dass trotz der möglichst unterschiedlichen Aufgabe
möglichst ähnliche Speicher vorteilhaft ist, damit der gemeinsamme Cache
ideal genutzt werden kann.
Tatsächlich ist das ganze ein bischen Komplizierter, aber zum Ver-
ständniss sollte das reichen.

-- 
B.Walter                   BWCT                http://www.bwct.de
bernd(at)bwct.de                                  info(at)bwct.de
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Thu 24 Feb 2005 - 13:21:23 CET

search this site