Ubuntu 16.04 Xenial Xerus
Ubuntu 14.04 Trusty Tahr
Ubuntu 12.04 Precise Pangolin
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 , nicht in 16.04 enthalten,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.
Wer sich nicht mit der Version aus den offiziellen Paketquellen begnügen 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 offiziellen Paketquellen (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.
Zunächst erstellt [3] man die neue Heimat des 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 der Eintrag "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.
Es handelt sich um einen Fehler der BOINC-Software. Durch Aktualisieren der BOINC-Software auf 7.0.29 (oder besser die aktuellste Version) dürfte der Fehler behoben sein.
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 https://github.com/BOINC/boinc/raw/master/curl/ca-bundle.crt -O /var/lib/boinc-client/ca-bundle.crt
Um Grafikkarten unter Boinc für GPU-Berechnungen nutzen zu können müssen zusätzlich zu den proprietären Treibern manuell SDK´s von AMD oder Nvidia installiert werden.
Für AMD Grafikkarten das Archiv hier herunterlanden http://developer.amd.com/tools-and-sdks/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/downloads/ Das Archive entpacken und die Datei default-install_lnx_64.pl als ausfürbar markieren. Mit
sudo default-install_lnx_64.pl
die Software installieren.
Für Nvidia Grafikkarten das Archiv hier herunterlanden https://developer.nvidia.com/cuda-downloads Die Datei zum ausführen markieren und mit
sudo cuda_5.0.35*.run
die Software installieren.
Nach einem Neustart des Boinc-Clienten wird die Grafikkarte dann in den Meldungen angezeigt.
| CAL: ATI GPU 0: AMD Radeon HD 7700 series (Cape Verde) (CAL version 1.4.1741, 1024MB, 864MB available, 3520 GFLOPS peak) | OpenCL: AMD/ATI GPU 0: AMD Radeon HD 7700 series (Cape Verde) (driver version 1124.2 (VM), device version OpenCL 1.2 AMD-APP (1124.2), 1024MB, 864MB available, 3520 GFLOPS peak)
Und kann dann von einem entsprechendem Projekt genutzt werden.
(Dieser Eintrag muss noch getestet werden - bei mir hat es funktioniert, bitte ggf. korrigieren)
Um die Grafikkartentreiber korrekt zu installieren sind neben dem nvidia-3xx Paket auch noch folgende zusätzliche Pakete erforderlich: nvidia-3xx-uvm, nvdia-opencl-icd-3xx, nvidia-modprobe
Nach der Installation dieser Pakete ist noch die Ausführung von nvidia-modprobe mit sudo nötig:
sudo nvidia-modprobe
Nach einem Neustarten des Boinc-Daemons sollte die GPU erkannt werden:
sudo service boinc-client restart
Fremdsoftware kann das System gefährden.
Als Beispiel der Treiber nvidia-352 aus dem ppa:xorg-edgers/ppa:
So 30 Aug 2015 13:04:06 CEST | | CUDA: NVIDIA GPU 0: GeForce GTX 750 Ti (driver version unknown, CUDA version 7.5, compute capability 5.0, 2047MB, 1809MB available, 2183 GFLOPS peak)
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.
Dies kann mehrere Ursachen haben, wie z.B. eine falsch konfigurierte Firewall. Oft ist aber auch einfach nur ein falsches Passwort in gui_rpc_auth.cfg gesetzt. Dazu müssen die Dateien im BOINC-Datenverzeichnis und im eigenen Home-Verzeichnis verglichen werden. Am praktischsten ist dabei das Verlinken.
cd ~ ln -s /opt/Boinc/data/gui_rpc_auth.cfg gui_rpc_auth.cfg sudo chmod 640 gui_rpc_auth.cfg
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 kann es einfach gegründet und hier verlinkt werden.
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
Diese Revision wurde am 12. November 2016 03:40 von Knarf68 erstellt.