Ubuntu 12.04 „Precise Pangolin“
Ubuntu 10.04 „Lucid Lynx“
Ubuntu 8.04 „Hardy Heron“
BOINC
ist ein Framework der Berkeley Universität für verteiltes Rechnen. Viele Projekte benutzen das BOINC-Netzwerk und erreichen oder übertreffen dadurch die Rechenkraft von Großrechnern - ohne viel Geld für diese auszugeben. Mit dem BOINC-Client kann man sich an diesen Projekten beteiligen, indem man die Leerlaufzeiten des eigenen Rechners dem BOINC-Netzwerk über das Internet zur Verfügung stellt.
Eines der ersten und immer noch bekanntesten Projekte, das BOINC nutzt, ist SETI@home. Hier wird die verteilte Rechenkraft benutzt, um Signale aus dem Weltall auszuwerten und möglicherweise intelligentes Leben zu finden.
Es ist zu bedenken, dass ein ausgelasteter Prozessor wesentlich mehr Strom verbraucht als wenn er sich im Leerlauf befindet. Betreibt man dauerhaft SETI@home, wird sich dies also auf der Stromrechnung- als auch durch höheren Hardware-Verschleiß niederschlagen.
BOINC ist in den offiziellen Paketquellen enthalten. Man installiert folgendes Paket [1]:
boinc (universe)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install boinc
sudo aptitude install boinc
boinc ist ein Metapaket, das client und manager installiert. Diese können auch einzeln installiert werden:
boinc-client (universe)
boinc-manager (universe )
mit apturl
Paketliste zum Kopieren:
sudo apt-get install boinc-client boinc-manager
sudo aptitude install boinc-client boinc-manager
Für die Installation auf einem System ohne grafische Oberfläche ist es ausreichend, nur den Client zu installieren. Über den Manager kann dann die Konfiguration von einem entfernten Rechner erfolgen.
Für SETI@home braucht man noch:
boinc-app-seti (universe)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install boinc-app-seti
sudo aptitude install boinc-app-seti
Für MilkyWay@home braucht man zusätzlich:
boinc-app-milkyway (universe)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install boinc-app-milkyway
sudo aptitude install boinc-app-milkyway
Der BOINC-Manager erscheint im Menü:
"Anwendungen -> Systemwerkzeuge -> BOINC-Manager"
Für die aktuellste Version ist unter Umständen eine manuelle Installation notwendig.
Nur noch für Ubuntu 10.04 interessant ist folgendes "Personal Package Archiv" (PPA).
Adresszeile zum Hinzufügen des PPAs:
ppa:pkg-boinc/ppa
Zusätzliche Fremdquellen können das System gefährden.
Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen bietet die PPA-Beschreibung vom Benutzer/Team pkg-boinc.
Damit Pakete aus dem PPA genutzt werden können, müssen die Paketquellen neu eingelesen werden.
Nach dem Aktualisieren der Paketquellen erfolgt die Installation wie oben angegeben.
Wer sich nicht mit der Version aus den Ubuntu-Quellen begnügen und auch nicht das PPA nutzen möchte, kann die aktuelle BOINC-Software von der BOINC-Homepage herunterladen und manuell installieren.
Fremdsoftware kann das System gefährden.
Man kann diese Version neben den bereits installiertem BOINC aus den Paketquellen verwenden und so das schon vorhandene Startskript /etc/init.d/boinc-client ohne Änderung weiterverwenden. Der Speicherort des BOINC-Clienten ist in der Konfigurationsdatei /etc/default/boinc-client definiert, welche vom init.d-Skript verwendet wird.
Da in dieser Konfigurationsdatei auch die Lage der Daten definiert ist, kann man problemlos sämtliche WUs weiterverwenden. Somit wäre es auch denkbar, beliebig viele BOINC-Versionen in verschiedenen Verzeichnissen zu installieren.
Zunächst muss BOINC aus den Ubuntu-Quellen (s.o.) installiert werden, da das Startskript benötigt wird.
Nun wird der BOINC-Client gestoppt:
sudo /etc/init.d/boinc-client stop
Dann lädt man sich die aktuelle BOINC-Version von der BOINC-Homepage herunter. Im Folgenden wird angenommen, dass die Datei in ~/Downloads gespeichert wird. Mit dem Befehl (x.y.z in boinc_x.y.z_i686-pc-linux-gnu.sh durch die aktuelle Version ersetzen):
cd ~/Downloads sh ./boinc_x.y.z_i686-pc-linux-gnu.sh
wird das Unterverzeichnis BOINC in ~/Downloads erstellt und darin durch das Shellskript Dateien und ein Verzeichnis erstellt.
BOINC soll natürlich beim Systemstart gestartet werden, so wie der BOINC-Client aus den Quellen. Es ist sicherheitstechnisch ungünstig, dafür ein Unterverzeichnis im Homeverzeichnis zu verwenden, da man Schreibrechte darauf hat. Darum wird der BOINC-Client aus den Ubuntu-Quellen als Benutzer "boinc
" ausgeführt und als normaler Benutzer hat man nur lesend darauf Zugriff. Alle Einstellungen für den BOINC-Manager werden im Homeverzeichnis in der Datei .BOINC Manager gesichert. Auf alle anderen Daten kann nur der BOINC-Client schreibend zugreifen.
Als nächstes erstellt [3] man die neue Heimat des neuen BOINC-Clients (auch auf einer anderen Partition möglich):
sudo mkdir /opt/Boinc
Die in ~/Downloads/BOINC liegenden Dateien müssen nun nach /opt/Boinc kopiert werden:
sudo cp -r ~/Downloads/BOINC/* /opt/Boinc
Im nächsten Schritt müssen noch alle Dateien und Verzeichnisse zur Gruppe und zum Benutzer "boinc
" hinzugefügt werden:
sudo chown -hR boinc:boinc /opt/Boinc
Möchte man auch gleich noch das Datenverzeichnis (welches standardmäßig in /var/lib/boinc-client liegt) verschieben, muss man das entsprechende Verzeichnis (bzw. Mountpunkt) erstellen, z.B.:
sudo mkdir /opt/Boinc/data
Die automatisch erstellten Daten von /var/lib/boinc-client kopieren:
sudo cp -r /var/lib/boinc-client/* /opt/Boinc/data
Das Datenverzeichnis "boinc
" zuteilen:
sudo chown -hR boinc:boinc /opt/Boinc/data
Jetzt ist man fast fertig. Allerdings muss das Startskript noch wissen, wo sich der neue BOINC-Client auf der Festplatte befindet, um ihn als Dienst starten zu können. Dazu editiert man /etc/default/boinc-client mit einem Editor [4] mit Root-Rechten [5].
Der Verweis auf den BOINC-Client aus den Quellen wird mit # auskommentiert (#BOINC_CLIENT="/usr/bin/boinc"
) und ein Verweis auf den neuen BOINC-Client eingefügt (BOINC_CLIENT="/opt/Boinc/boinc"
).
Genauso verfährt man mit dem verschobenen Datenverzeichnis und der Zeile BOINC_DIR="/var/lib/boinc-client"
.
Es sollte dann so aussehen:
# This file is /etc/default/boinc-client, it is a configuration file for the # /etc/init.d/boinc-client init script. # Set this to 1 to enable and to 0 to disable the init script. ENABLED="1" # The BOINC core client will be started with the permissions of this user. BOINC_USER="boinc" # This is the data directory of the BOINC core client. #BOINC_DIR="/var/lib/boinc-client" BOINC_DIR="/opt/Boinc/data" # This is the location of the BOINC core client, that the init script uses. # If you do not want to use the client program provided by the boinc-client # package, you can specify here an alternative client program. #BOINC_CLIENT="/usr/local/bin/boinc" #BOINC_CLIENT="/usr/bin/boinc" BOINC_CLIENT="/opt/Boinc/boinc" # Here you can specify additional options to pass to the BOINC core client. # Type 'boinc --help' or 'man boinc' for a full summary of allowed options. #BOINC_OPTS="--return_results_immediately --allow_remote_gui_rpc" BOINC_OPTS=""
Als letzter Schritt wird nun der Dienst gestartet:
sudo /etc/init.d/boinc-client start
Damit läuft Boinc in der aktuellen Version. Falls schon WUs und Projekte vorhanden waren, werden diese weiterverwendet.
Um den neuen Boinc-Manager nutzen zu können, muss das Symbol "Boinc-Manager" im Menü "Anwendungen -> Systemwerkzeuge" angepasst werden. Dazu erfolgt ein -Klick auf das Menü "Anwendungen -> Menüs bearbeiten". Im sich öffnenden Fenster links auf den Eintrag "Systemwerkzeuge" klicken, rechts daneben erscheinen die Untermenüpunkte und darunter auch der "Boinc Manager". Diesen mit
auswählen und auf "Eigenschaften" klicken. Es erscheint ein neues Fenster "Starter-Eigenschaften". Im Feld "Befehl" muss der Eintrag folgendermaßen geändert werden:
/opt/Boinc/boincmgr
Um das Symbol hinzuzufügen, klickt man im Fenster "Starter-Eigenschaften" auf das Symbol links oben und wählt als Verzeichnis /opt/Boinc, wo sich die aktuellen Symbole befinden.
Sollte eine neue BOINC-Version erscheinen, braucht man im Prinzip nur die manuelle Installation zu wiederholen. Die Datei /etc/init.d/boinc-client braucht dabei nicht noch einmal angepasst zu werden (getestet mit dem Update von v5.10.45 nach v6.2.15).
Über den BOINC-Manager meldet man sich bei bestehenden Projekten an. Zuvor muss man noch im BOINC-Manager unter "Extras -> Computer auswählen -> Rechnername" das Wort "localhost" eingeben, damit der BOINC-Manager weiß, dass man diesen Computer steuern möchte.
Mit dem Boinc Manager ist es möglich, weitere Rechner fernzusteuern. Auf dem fernzusteuernden Rechner (dem Client) müssen dafür nur der boinc-client installiert sein und folgende Schritte ausgeführt werden:
In die leere Datei /etc/boinc-client/gui_rpc_auth.cfg ein beliebiges Passwort eintragen. Dieses wird beim Verbinden abgefragt. Es ist auch möglich (aber nicht empfohlen), nur eine Leerzeile einzufügen. Dies bedeutet dann, dass kein Passwort gesetzt wurde.
In die Datei /etc/boinc-client/remote_hosts.cfg muss die IP des PCs eingetragen werden, auf dem der Boinc-Manager läuft und von dem aus gesteuert werden soll.
Falls eine Firewall wie ufw oder Firestarter installiert ist, muss daran gedacht werden, den TCP-Port 31416 für eingehende Verbindungen zu öffnen.
Nun muss der Client neu gestartet werden. Dies erreicht man z.B. so:
sudo /etc/init.d/boinc-client restart
Nun kann man im Boinc-Manager auf dem Haupt-Rechner unter "Extras -> Computer auswählen" nach Eingabe von IP und Passwort des fernzusteuernden PCs den Boinc-Client steuern. Möchte man wieder den eigenen Rechner steuern, verbindet man sich mit der IP "localhost".
Aktiviert man über den Menüpunkt "Ansicht" das "Accessible View", dann erscheint unter "Extras" die Möglichkeit, erweiterte Einstellungen per "Preferences" vorzunehmen. Irgendwie scheint aber die Debian-Version des Managers die Einstellungsdatei /var/lib/boinc-client/global_prefs_override.xml mangels ausreichenden Rechten nicht ändern zu können. Die Datei ist eine Verknüpfung auf eine Datei, die Root gehört. Mit einem
sudo chown boinc:boinc /var/lib/boinc-client/global_prefs_override.xml
gibt man dem BOINC-Client die nötigen Rechte. Anschließend lassen sich unter "Preferences" sämtliche Einstellungen vornehmen.
Wenn BOINC keine Verbindung zu den WorldCommunityGrid-Servern herstellen kann und folgende Meldung ausgegeben wird:
World Community Grid Scheduler request failed: Peer certificate cannot be authenticated with known CA certificates
muss das entsprechende Zertifikat bereitgestellt werden. Das Zertifikat kann hier
heruntergeladen werden und muss mit Root-Rechten nach /var/lib/boinc-client/ca-bundle.crt gespeichert werden. Der folgende Befehl übernimmt diese beiden Schritte.
sudo wget http://boinc.berkeley.edu/trac/browser/trunk/boinc/curl/ca-bundle.crt?format=raw -O /var/lib/boinc-client/ca-bundle.crt
Bei älteren Ubuntu-Versionen hatten Prozesse niedriger Priorität (wie z.B. Boinc) keinen Einfluss auf den Prozessortakt und wurden bei niedrigster Taktrate bearbeitet. Bei den aktuellen Versionen wurde dieses Verhalten geändert. Dieses Verhalten kann aber wiederhergestellt werden.
Seit 20. Oktober 2009 gibt es auch ein Team ubuntuusers, in dem alle herzlich willkommen sind. Das Team ist zurzeit unter folgenen Projekten verfügbar:
Rosetta@home --> Join
MilkyWay@home --> Join
Einstein@Home --> Join
Cosmology@Home --> Join
Falls für ein Projekt das Team noch nicht verfügbar ist, bitte eine Nachricht an 3mu.
Liste der Projekte: Wikipedia und SETI.Germany
SETI@home - Das erste BOINC-Projekt überhaupt. Sucht nach künstlich erzeugten Signalen im All
Einstein@home - Auswertung der Daten des Gravitationswellenobservatoriums LIGO
LHC@home - Auswertung der Daten des Teilchenbeschleunigers LHC
Cosmology@Home - Vergleich theoretischer Modelle des Universums
MilkyWay@home - Erstellung eines dreidimensionalen Modells der Milchstraße
Rosetta@home - Berechnung der dreidimensionalen Struktur von Proteinen
Vorhersage von Klimaveränderungen - Wikipedia