staging.inyokaproject.org

Icecream

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Icecream 🇬🇧 ist ein verteilter Compiler basierend auf 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]:

  • icecc (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install icecc 

Oder mit apturl installieren, Link: apt://icecc

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:

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 make sieht dies z.B. bei sechs parallelen Aufträgen so aus:

make CC=icecc -j6 

Icecream kann auch als 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 offzielle Dokumentation 🇬🇧 verwiesen.

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.

Diese Revision wurde am 6. Februar 2020 17:36 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Programmierung