Kompilieren mit Intel Core 2 Duo

  • Themenstarter Themenstarter Gelöschtes Mitglied 3772
  • Beginndatum Beginndatum
G

Gelöschtes Mitglied 3772

Guest
Hallo allerseits,

da ich ein Macbook besitze und fürs Studium QT brauche habe ich es selbst kompiliert.
Als es nach einer gefühlten Ewigkeit (ca 40min.) endlich fertig war dachte ich mir,
dass das doch auf dem Intel Core 2 Duo schneller gehen kann, wenn man make bzw configure
irgendwie sagt, dass er beide Kerne des Prozessors nutzen soll.

Schnell Google angeschmissen aber bis jetzt leider nicht fündig geworden.

Weiß hier zufällig jemand den Befehl um configure/make dazu zu bringen beide Prozessorkerne beim kompilieren zu nutzen ?

System: Macbook Intel Core 2 Duo 2Ghz && Mac OS X 10.4.9 + GNU Make 3.80

Vielen Dank im Voraus.

Lord
 
'make -j<anzahl der gleichzeitigen Prozesse>' z.B. 'make -j4' bei 4 CPUs.
 
Original von bitmuncher
'make -j<anzahl der gleichzeitigen Prozesse>' z.B. 'make -j4' bei 4 CPUs.
Wobei ich es von Gentoo noch so kenne, dass man -j<Anzahl der Kerne +1 oder +2> setzt.

Weiß jemand, inwiefern das eine Rolle spielt?

Achso, und das Ganze sollte sich auch über die Umgebungsvariable Makeflags regeln lassen ;-)

//Edit: Ich habe die Stelle in der Gentoodoku nochmal überflogen:
Mit MAKEOPTS können Sie festlegen, wie viele Kompilerprozesse parallel gestartet werden, wenn Sie ein Paket installieren. Eine gute Wahl ist die Anzahl der CPUs in Ihrem System erhöht um Eins.
 
Man setzt mit -j auch nicht die Anzahl der Kerne/Prozessoren sondern die Anzahl der Prozesse, die make gleichzeitig laufen lässt. Die Verteilung dieser Prozesse auf die CPUs übernimmt dann das System.
 
Das ist mir schon klar. Ich wollte nur wissen inwiefern es dabei eine Rolle spielt, ob ich jetzt -j2 oder -j4 verwende. Gentooler sind mir manchmal mit den ganzen Optimierungen ihrer Compilerflags ein wenig suspekt, und sonst bin ich über dieses Thema immer mal wieder auf widersprüchliche Angaben gestoßen, deshalb auch meine Frage.
 
Es kommt halt darauf an wieviele CPUs man hat. Bei 2 CPUs macht es recht wenig Sinn -j4 zu verwenden, da dann 2 Prozesse immer auf Zuweisung der CPU warten müssen.
 
Genau das war es ja, was mich daran wundert. Trotzdem habe ich schon in mehreren voneinander unabhängigen Quellen gelesen, dass man eine höhere Anzahl an gleichzeitigen Prozessen als die vorhandenen CPUs verwenden soll.

Naja, ich sehe es mir irgendwann nochmal genauer an. Ich dachte nur, vielleicht kann das jemand hier mal eben aus dem Ärmel schütteln :)
 
mom, um mal eins klarzustellen - das sind keine eigenen prozesse, sondern threads, oder ? (weils mir grad auffällt)

ansonsten, ja, ich kenns auch so, prozessoranzahl +1, aber ne begründung hat mir auch noch niemand liefern können.
 
Nein, es sind einzelne Prozesse, die parallel laufen. Im Falle eine C-Programm z.B. heißt -j2, daß 2 Objekt-Dateien gleichzeitig erstellt werden können u.ä., also der gcc für 2 Dateien gleichzeitig aufgerufen wird.
 
Original von t3rr0r.bYt3
mom, um mal eins klarzustellen - das sind keine eigenen prozesse, sondern threads, oder ?

man make:
-j jobs
Specifies the number of jobs (commands) to run simultaneously. If
there is more than one -j option, the last one is effective. If
the -j option is given without an argument, make will not limit
the number of jobs that can run simultaneously.

das bedeutet, dass er z.b. gcc mehrmals parallel ausführt (mehrere prozesse und nicht threads). das "+1" kommt meines erachtens vom warten auf recourcen (prozess erzeugen, io, ...). in dieser wartezeit kann dann ein anderer arbeiten.
 
Zurück
Oben