[[Vorlage(Archiviert, , )]] [[Vorlage(Fortgeschritten)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Editor: Einen Editor öffnen] [:sudo: Root-Rechte] }}} [[Inhaltsverzeichnis()]] [github:icecc/icecream:Icecream] {en} ist ein verteilter [wikipedia:Compiler:] basierend auf [github:/distcc/distcc:distcc], d.h. der Compiler nimmt Aufträge an und verteilt diese an entfernte Rechner, um ein paralleles Kompilieren zu ermöglichen. Im Unterschied zu distcc verwendet Icecream einen zentralen Server, welcher dynamisch die Aufträge an den schnellsten freien Rechner sendet. = Installation = Um Icecream zu installieren, verwendet man das folgende Paket [1]: {{{#!vorlage Paketinstallation icecc, universe }}} = Icecream-Server starten = Um Icecream zu verwenden, muss der Server auf jeder Maschine gestartet werden. Dazu editiert man die Datei '''/etc/default/icecc''' in einem Editor [2] mit Root-Rechten [3] und setzt die Option `START_ICECC` auf `true`. Auf dem Rechner, welcher als zentraler Server dienen soll, muss zusätzlich die Option `START_ICECC_SCHEDULER` aktiviert werden. Anschließend muss der Server-Dienst neu gestartet werden: {{{#!vorlage Befehl sudo /etc/init.d/icecc restart }}} In Zukunft wird der Server-Dienst automatisch beim Systemstart mitgestartet. = Icecream zum Kompilieren einsetzen = Um mit Icecream zu kompilieren, muss icecc als Compiler gesetzt sein und die Anzahl der parallel ausgeführten Aufträge erhöht werden. Für die Anzahl der parallelen Aufträge kann die Faustregel "Anzahl der logischen Prozessoren mal 2" verwendet werden, jedoch können Zahlen größer 15 zu Problem führen. Im Falle von [:Makefile:make] sieht dies z.B. bei sechs parallelen Aufträgen so aus: {{{#!vorlage Befehl make CC=icecc -j6 }}} Icecream kann auch als [wikipedia:Cross-Compiler:] verwendet werden und somit können auch Rechner unterschiedlicher Architekturen (z.B. i386 und amd64) im Verbund zusammengeschlossen werden. Hier sei an die [http://en.opensuse.org/Icecream offzielle Dokumentation] {en} verwiesen. {{{#!vorlage Hinweis Icecream verursacht natürlich durch das Verteilen einen merkbaren Overhead, wenn nur ein Rechner zur Verfügung steht oder nur wenige Kompilieraufträge vorliegen. }}} = Links = * [github:icecc/icecream:Projektseite] {en} * [:Programmierung:] {Übersicht} Übersichtsartikel #tag: Programmierung