das Ubuntuusers Wiki sagt
Das beantwortet aber keine Frage hier. In dem Fall wird gcc einfach paralell kompilieren und nicht seriell ein File nach dem anderen. Das Linken setzt am Schluss ja das Binary zusammen (IMHO).
@blender3d:
Das kannst du meistens gar nicht beeinflussen. Entweder wurde eine Applikation Multithreaded programmiert, oder nicht. Wenn sie Multithreaded programmiert wurde, gibt es immernoch min. 2 Typen von Applikationen:
Die, bei denen alle Threads dasselbe erledigen:
Bsp. Webserver -> User connected, Requests wird in einen Thread ausgelagert der explizit diesen User bedient, hier macht jeder Thread dasselbe. Die Threads sind untereinander nicht verbunden/müssen nicht kommunizieren.
...oder aber es werden einzelne, voneinander abhängige Subsysteme ausgelagert:
Bei Spielen wie HL2 kann dies beispielsweise die Physikengine oder Künstliche Intelligenz sein, die in seperaten Threads laufen. Diese müssen koordiniert sein (ist bei HL2 ein "Koordinator"-Thread) da die Aufgaben der Threads ja unterschiedlich schnell beendet sein können. Hier kannst du nicht aussuchen, ob und wieviele Threads du haben willst, das ist einfach die Softwarearchitektur die es vorgibt.
Wenn du eine Applikation wie einen Webserver hast, dann kannst du oftmals in den Einstellungen sagen, ob Threads voralloziiert oder laufend erstellt werden sollen, wieviele Threads das Maximum ist etc. pp. Schau dir mal das Apache2-Konfigfile an - dort wirst du vieles antreffen das ich hier erklärt habe.
Ggf. gibt es Ressource-Capping Tools fuer Linux, bei welchen du Limitte gibst wie "Prozess A darf nur 90% CPU Last generieren" bzw. "Prozess A laeuft immer auf Prozessor B".
Was genau hast du denn vor?