[[Vorlage(Getestet, bionic)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Packprogramme: Archive entpacken] [:Terminal: Ein Terminal öffnen] [:Editor:Einen Editor öffnen] [:sudo: Root-Rechte] }}} [[Inhaltsverzeichnis(3)]] [[Bild(./BoincNewLogo.gif, align=left)]] [https://boinc.berkeley.edu/ BOINC] {en} ist ein Framework der Berkeley Universität für [wikipedia:Verteiltes_Rechnen: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 [wikipedia:SETI@home:]. Hier wird die verteilte Rechenkraft benutzt, um Signale aus dem Weltall auszuwerten und möglicherweise intelligentes Leben zu finden. {{{#!vorlage Hinweis 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. }}} = Installation = BOINC ist in den offiziellen Paketquellen enthalten. Man installiert folgendes Paket [1]: {{{#!vorlage Paketinstallation boinc, universe }}} '''boinc''' ist ein [:Metapaket:], das '''client''' und '''manager''' installiert. Diese können auch einzeln installiert werden: {{{#!vorlage Paketinstallation boinc-client, universe boinc-manager, universe }}} 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 [https://setiathome.ssl.berkeley.edu/ SETI@home] {en} braucht man noch: {{{#!vorlage Paketinstallation boinc-app-seti, universe }}} Der BOINC-Manager erscheint im Menü: * ''"Anwendungen -> Systemwerkzeuge -> BOINC-Manager"'' ## Für die aktuellste Version ist unter Umständen eine [#Manuell manuelle Installation] notwendig. ## == Manuell == ## Wer sich nicht mit der Version aus den offiziellen Paketquellen begnügen möchte, kann die aktuelle BOINC-Software von der [https://boinc.berkeley.edu/download.php BOINC-Homepage] {en} herunterladen und manuell installieren. ## [[Vorlage(Fremd, Software)]] ## 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. ## === Vorbereitung === ## Zunächst muss BOINC aus den offiziellen Paketquellen ([:BOINC#Installation:s.o.]) installiert werden, da das Startskript benötigt wird. ## Nun wird der BOINC-Client gestoppt: ## {{{#!vorlage Befehl ## sudo /etc/init.d/boinc-client stop ## }}} ## === Die neueste Version === ## Dann lädt man sich die aktuelle BOINC-Version von der [https://boinc.berkeley.edu/download.php BOINC-Homepage] {en} 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): ## {{{#!vorlage Befehl ## 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. ## === Eine neue Heimat für BOINC === ## 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): ## {{{#!vorlage Befehl ## sudo mkdir /opt/Boinc ## }}} ## Die in '''~/Downloads/BOINC''' liegenden Dateien müssen nun nach '''/[:opt:]/Boinc''' kopiert werden: ## {{{#!vorlage Befehl ## 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: ## {{{#!vorlage Befehl ## sudo chown -hR boinc:boinc /opt/Boinc ## }}} ## === Datenverzeichnis verschieben === ## 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.: ## {{{#!vorlage Befehl ## sudo mkdir /opt/Boinc/data ## }}} ## Die automatisch erstellten Daten von ''/var/lib/boinc-client'' kopieren: ## {{{#!vorlage Befehl ## sudo cp -r /var/lib/boinc-client/* /opt/Boinc/data ## }}} ## Das Datenverzeichnis "`boinc`" zuteilen: ## {{{#!vorlage Befehl ## sudo chown -hR boinc:boinc /opt/Boinc/data ## }}} ## === Abschluss === ## 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: ## {{{#!vorlage Befehl ## 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. ## === Anpassen des Starticons des Boinc-Managers (GNOME) === ## Um den neuen Boinc-Manager nutzen zu können, muss der Eintrag ''"Boinc-Manager"'' im Menü ''"Anwendungen -> Systemwerkzeuge"'' angepasst werden. Dazu erfolgt ein [[Vorlage(Tasten, rmt)]]-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 [[Vorlage(Tasten, rmt)]] 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. ## === BOINC-Version aktualisieren === ## 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). = Verwendung = {{{#!vorlage Tabelle [[Bild(boinc.png, x170)]] [[Bild(boincmanager.png, x170)]] +++ <:>BOINC-Manager <:>Ausführliche Ansicht }}} == BOINC-Manager == Ü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. === Erweiterte Ansicht === Über ''"Ansicht -> Erweiterte Ansicht"'' erreicht man eine ausführliche Darstellung des Managers mit detaillierten Angaben und weiteren Einstellungsmöglichkeiten. == Einen Boinc-Client fernsteuern == 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:] 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: {{{#!vorlage Befehl 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"''. = Probleme und Lösungen = == Die Einstellungen lassen sich nicht verändern == 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 {{{#!vorlage Befehl 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. == Fehlendes CA-Certificate für WorldCommunityGrid == 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 [https://github.com/BOINC/boinc/raw/master/curl/ca-bundle.crt hier] {en} {dl} heruntergeladen werden und muss mit Root-Rechten nach '''/var/lib/boinc-client/ca-bundle.crt''' gespeichert werden. Der folgende Befehl übernimmt diese beiden Schritte. {{{#!vorlage Befehl sudo wget https://github.com/BOINC/boinc/raw/master/curl/ca-bundle.crt -O /var/lib/boinc-client/ca-bundle.crt }}} == Prozessor wird hochgetaktet und verursacht höheren Stromverbrauch == 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 [:Prozessortaktung#Prozessor-taktet-bei-unwichtigen-Prozessen-hoch:wiederhergestellt werden]. == BOINC Manager verbindet sich nicht == 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 [:ln:Verlinken]. {{{#!vorlage Befehl cd ~ ln -s /opt/Boinc/data/gui_rpc_auth.cfg gui_rpc_auth.cfg sudo chmod 640 gui_rpc_auth.cfg }}} = Team ubuntuusers = Seit 20. Oktober 2009 gibt es auch ein Team ''ubuntuusers'', in dem alle herzlich willkommen sind. Das Team ist zurzeit unter folgenden Projekten verfügbar: * [https://setiathome.berkeley.edu/team_display.php?teamid=132665 SETI@home] --> [https://setiathome.berkeley.edu/team_join_form.php?id=132665 Join] * [https://boinc.bakerlab.org/rosetta/team_display.php?teamid=9553 Rosetta@home] --> [https://boinc.bakerlab.org/rosetta/team_join_form.php?id=9553 Join] * [https://milkyway.cs.rpi.edu/milkyway/team_display.php?teamid=1875 MilkyWay@home] --> [https://milkyway.cs.rpi.edu/milkyway/team_join_form.php?teamid=1875 Join] * [https://lhcathome.cern.ch/lhcathome/team_display.php?teamid=5187 LHC@home] --> [https://lhcathome.cern.ch/lhcathome/team_join_form.php?teamid=5187 Join] * [https://einsteinathome.org/de/community/teams/182633/ Einstein@Home] --> [https://einsteinathome.org/de/join Join] * [https://www.cosmologyathome.org/team_display.php?teamid=1623 Cosmology@Home] --> [https://www.cosmologyathome.org/team_join_form.php?teamid=1623 Join] * [https://www.cpdn.org/cpdnboinc/team_display.php?teamid=9072 climateprediction.net] --> [http://climateapps2.oucs.ox.ac.uk/cpdnboinc/team_join_form.php?id=9072 Join] * [https://www.worldcommunitygrid.org/team/viewTeamInfo.do?teamId=312HNR5PKZ1 worldcommunitygrid.org] --> [https://join.worldcommunitygrid.org?teamId=312HNR5PKZ1 Join] * [http://abcathome.com/team_display.php?teamid=1408 ABC@home] * [http://aqua.dwavesys.com/team_display.php?teamid=1113 AQUA@home] * [https://asteroidsathome.net/boinc/team_display.php?teamid=2677 Asteroids@home] * [https://boinc.thesonntags.com/collatz/team_display.php?teamid=4833 Collatz Conjecture] * [http://www.enigmaathome.net/team_display.php?teamid=3266 Enigma@home] * [https://boinc.gorlaeus.net/team_display.php?teamid=1346 Leiden Classical] * [https://moowrap.net/team_display.php?teamid=2736 Moo! Wrapper] * [https://numberfields.asu.edu/NumberFields/team_display.php?teamid=47797 NumberFields@home] * [https://boinc.fzk.de/poem/team_display.php?teamid=3476 POEM@HOME] * [https://qah.uni-muenster.de/team_display.php?teamid=2590 QMC@home] * [https://boincsimap.org/boincsimap/team_display.php?teamid=3603 SIMAP] * [https://wuprop.boinc-af.org/team_display.php?teamid=34846 WUProp@Home] * [http://www.rnaworld.de/rnaworld/team_display.php?teamid=6139 RNA World] Falls für ein Projekt das Team noch nicht verfügbar ist kann es einfach gegründet und hier verlinkt werden. = Links = * [https://boinc.berkeley.edu/ Projektseite] {en} * [http://www.boinc.de/ deutsche Seite] {de} * [https://www.seti-germany.de// SETI.Germany] {de} * [https://rechenkraft.net/ Rechenkraft.net e.V.] {de} == Interessante Projekte == * Liste der Projekte: [wikipedia:Liste_der_Projekte_verteilten_Rechnens:Wikipedia] und [https://www.seti-germany.de/wiki/Projekte SETI.Germany] {de} * [https://setiathome.ssl.berkeley.edu/ SETI@home] {en} - Das erste BOINC-Projekt überhaupt. Sucht nach künstlich erzeugten Signalen im All * [https://einsteinathome.org/ Einstein@home] {en} - Auswertung der Daten des Gravitationswellenobservatoriums [wikipedia:LIGO:] * [https://lhcathome.cern.ch/lhcathome/ LHC@home] {en} - Auswertung der Daten des Teilchenbeschleunigers [wikipedia:LHC:] * [https://www.cosmologyathome.org/ Cosmology@Home] {en} - Vergleich theoretischer Modelle des Universums * [https://milkyway.cs.rpi.edu/milkyway/ MilkyWay@home] {en} - Erstellung eines dreidimensionalen Modells der Milchstraße * [https://boinc.bakerlab.org/rosetta/ Rosetta@home] {en} - Berechnung der dreidimensionalen Struktur von Proteinen * [https://www.worldcommunitygrid.org/ WorldCommunityGrid] {en} {fr} {es} * [wikipedia:ClimatePrediction.net:Vorhersage von Klimaveränderungen] - Wikipedia # tag: Internet, Netzwerk