BOINC unter openSUSE

Der BOINC Manager

Viele kennen bestimmt das Projekt SETI@HOME. Hier werden von einem Radioteleskop Radiowellen aufgezeichnet, die dann im Computer analysiert werden um nach ausserirdischen Signalen zu suchen. Ansich nicht sehr spannend. Das interessante daran ist nun, das Sie selber Ihre CPU- und GPU-Leistung zur Verfügung stellen können. Bei diesen verteilten Rechnen wird Ihrem Computer Datenpakete zum Berrechnen zugeschickt. Nach dem Rechnen schickt der PC das Ergebnis zum Projekt zurück. Dafür erhalten Sie Credits. Diese errechnen Sich an der geleisteten Rechenarbeit. Kaufen können Sie sich damit nichts. Sie zeigen nur die von Ihnen in das jeweilige Projekte gesteckete (Rechen)arbeit. Wenn es Ihnen persönlich nichts bedeutet Aliensignale zu jagen, können Sie sich auch an anderen Projekten beteidigen, wie das Falten von Proteinen oder das suchen nach Pulsaren. Es gibt viele interessante seriöse wissenschaftliche Projekte die das verteilte Rechnen benutzen, da sie so an große Rechenleistung kommen ohne dafür einen großen Cluster zu betreiben. Möglich wird all dies durch das Berkeley Open Infrastructure for Network Computing (kurz BOINC). Dieses Programm besteht aus einem Serverteil und einem Client. Mit dem Serverteil müssen Sie sich nicht auseinandersetzen. Dieser schickt Ihnen nur die zu berrechnenden Pakete. Wie genau BOINC funktioniert erklärt die Wikipedia unter http://de.wikipedia.org/wiki/Boinc. Eine Liste von Projekten finden Sie unter http://de.wikipedia.org/wiki/Liste_der_Projekte_verteilten_Rechnens.

Zur HowTo

Sollten Sie sich also entscheiden, einem oder mehreren Projekten Ihre Rechenleistung zur Verfügung zu stellen, können Sie folgende HowTo durcharbeiten. In dem beschriebenen Szenario soll der BOINC Client auf einem Server laufen. Gesteuert werden soll er von dem BOINC Manager der auf einem Desktop PC läuft. Auch soll der Client über das Internet erreichbar sein. Die Installation lässt sich natürlich auch auf einem Desktop PC vornehmen. Hier können Sie dann die Firewalleinstellungen überspringen.

Achtung! Scheinbar funktioniert die neuste Version von BOINC 6.12 nicht mit openSUSE 12.1. Auch hat sich durch die Umstellung von SysVinit auf systemd die Autostarteinstellungen von Grunde auf geändert. Deswegen werde ich für > 12.1 noch eine extra HowTo verfassen bzw. hier ein Update schreiben. Die Anleitung unten funktioniert nachwievor für 11.3 sowie 11.4.

Installation

Zwar gibt es im Repository von openSUSE die gesuchten Pakete zu BOINC. Allerdings habe ich diese Version bei mir nicht zum laufen bekommen. Zudem ist der auf der offiziellen Seite herunterladbare Client aktueller.

(Alle Befehle die folgen werden als root ausgeführt!)

Zuerst müssen wir allerdings zur Sicherheit einen neuen Benutzer und eine Gruppe für BOINC erstellen. Diese nennen wir sinnigerweise boinc. Starten Sie dazu YaST und gehen Sie auf die Benutzer- und Gruppenverwaltung. Erstellen Sie unter Gruppe eine Gruppe mit dem Namen

boinc

Die Filterauswahl befindet sich oben rechts

Danach gehen Sie auf den Reiter Benutzer und erstellen einen neuen Systembenutzer. Dazu müssen Sie den Filter erst auf Systembenutzer wechseln. Wählen Sie dann Hinzufügen aus. Markieren Sie in dem Eingabedialog das Feld Benutzername deaktivieren. Im Reiter Details geben Sie als Standardgruppe boinc an und wählen alle anderen zusätzlichen Gruppen ab. Bei der Anmelde-Shell geben Sie

/bin/false

ein. Also Homeordner geben Sie

/opt/BOINC

an. Bestätigen Sie alles mit OK.

Wechseln Sie nun in einem Terminal mit

cd /opt

in das Verzeichnis /opt. Nun laden Sie den BOINC Client mit

wget http://boinc.berkeley.edu/dl/boinc_6.10.58_x86_64-pc-linux-gnu.sh

herunter. Den richtigen Link zur Datei können Sie unter http://boinc.berkeley.edu/download.php herausfinden. Die zu diesem Zeitpunkt aktuellste Version würden Sie unter http://boinc.berkeley.edu/dl/boinc_6.10.58_x86_64-pc-linux-gnu.sh finden.

Nachdem Sie die Datei heruntergeladen haben müssen Sie das Script ausführbar machen. Mit

chmod +x boinc_6.10.58_x86_64-pc-linux-gnu.sh

können Sie die Datei ausführbar machen. Führen Sie die Datei mit dem Befehl

./boinc_6.10.58_x86_64-pc-linux-gnu.sh

aus. Dabei werden die Programmdateien in den Ordner /opt/BOINC enptackt.
Zurzeit gehören alle Dateien und Ordner von BOINC noch root. Da wir BOINC allerdings abgeschottet als eigenen Nutzer laufen lassen wollen müssen wir die Dateirechte noch ändern, denn zurzeit kann der Benutzer boinc nicht auf die Daten zugreifen. Mit

chown -R boinc:boinc /opt/BOINC/

werden die Datein dem Benutzer boinc übergeben.

Nun könnte der BOINC Client schon ausgeführt werden und auch über den Server per ssh administriert werden. Nur ist dies sehr umständlich. Einfach geht dies mit einem Manager wie zB. dem offiziellen BOINC Manager. Damit dieser auf den BOINC Client zugreifen kann müssen Sie folgende Einstellungen vornehmen:

Wechseln Sie mit

cd /opt/BOINC

und starten Sie mit dem Befehl

./boinc

das Programm. Sie können es direkt mit Strg + C beenden. Der Vorgang dient nur dazu die Konfigurationsdateien zu erstellen.

Öffnen Sie mit

vi /opt/BOINC/gui_rpc_auth.cfg

die Einstellungsdatei für den GUI Zugriff. In Ihr befindet sich ein zufälliger Buchstabenstrang. Dies ist das Passwort für den Client. Sie können sich dies kopieren oder einfach ein neues einsetzen. Unter vi kommen Sie mit der Taste i in den Einfügemodus. Speichern erfolgt mit Esc gefolgt von :wq.

Damit der Client auch beim Hochfahren mit dem richtigen Benutzer startet müssen wir noch eine Datei bearbeiten. Dies erfolgt mit dem Befehl:

vi /etc/init.d/boot.local

Diese Datei führt alle in Ihr hineingeschriebenen Befehle nach dem hochfahren aus.

Tragen Sie dort folgendes ein (Taste i öffnet Einfügemodus):

sudo -u boinc sh /opt/BOINC/run_client --allow_remote_gui_rpc --daemon --gui_rpc_port 31416

und speichern Sie mit Esc gefolgt von :wq ab. Der Wert –allow_remote_gui_rpc bedeutet das der Client Zugriffe von Managern erlaubt; –daemon startet den Client als Hintergrundprogramm. Der Wert –gui_rpc_port 31416 lässt den Client auf dem Port 31416 lauschen. Dies ist wichtig da wir den Port noch in der Firewall freigeben müssen. Dies machen Sie mit dem Befehl

yast

Hier geben Sie den Port ein der freigegeben werden muss

Gehen Sie nun auf Sicherheit und Benutzer > Firewall > Erlaubte Dienste > Erweitert und Tragen unter TCP-Ports

31416

ein. Bestätigen Sie alle Einstellungen. Wenn Sie den Client auch aus dem Internet steuern wollen müssen Sie den Port auch im Router freigeben. Benutzen Sie ein gutes Passwort (siehe gui_rpc_auth.cfg).

Starten Sie den Server nun neu bzw. führen Sie das Script boot.local aus um den BOINC Client zu starten. Nun müssten Sie mit dem BOINC Manager auf den Client zugreifen können. Der BOINC Manager ist in dem Paket übrigens mit enthalten. Das Startscript lautet im BOINC Verzeichnis

run_manager

. Sie können BOINC am einfachsten im Ihrem Homeverzeichnis wie oben beschrieben entpacken und dort den Manager starten. Je nach Oberfläche können Sie sich dann ein Icon erstellen worüber Sie den Manager starten können. Der BOINC Manager aus den openSUSE RPMs funktionert auch, ist allerdings nur in Englisch und hat nicht alle Funktionen wie der neuere Manager.

Verbindung aufbauen

Wenn Sie den BOINC Manager gestartet haben können Sie unter Extras > Computer auswählen die Verbindung zum Computer herstellen. Geben Sie dort einfach die IP Adresse oder den Hostname an. Dann noch das Passwort das Sie in der gui_rpc_auth.cfg eingetragen haben. Wenn die Verbindung aufgebaut wurde, können Sie unter Assistenten entweder direkt ein Projekt anmelden oder Sie benutzen einen Webservice der die Projekte für Sie verwaltet wie zum Beispiel http://de.boincstats.com. Dies hat den Vorteil das sie Präferenzen nicht an jedem einzelen Client und Projekt vornehmen müssen sondern nur einmal beim Webservice. Die Clients verbinden sich regelmäßig mit dem Service und fragen die neusten Configs ab. So können Sie dort gezielt einstellen welche PCs /Server welche Projekte abarbeiten sollen und welche Prioritäten haben.

Zum Schluss

  • Aufräumen nicht vergessen. In
     /opt

    liegt noch die Installationsdatei. Diese können Sie mit dem Befehl rm /opt/installationsdatei_name_hier_eintagen löschen.

  • Beachten Sie das durch die Benutzung von BOINC logischerweise die CPU ausgelastet wird, was eventuell zu einem langsameren System führen kann. Unter Extras > Einstellungen können Sie die CPU Auslastung sehr genau einstellen, so dass BOINC sie beim arbeiten nicht stört.
  • Durch die CPU Auslastung kommt es zu einem höhren Stromverbrauch. Bei einer Auslastung von 50% sind dies bei meinem Server (AMD Athlon II) etwa 10 – 20W. Dies ist aber je nach Hardware und Einstellung anders.

3 Gedanken zu “BOINC unter openSUSE

  1. Hallo Ununseptium,

    bei mir läuft der BOINC Client unter SuSE 12.1 mit demselben init.d-Skript, mit dem ich ihn auch unter 11.x gestartet habe, unter meinem Benutzernamen (erkennbar im Systemmonitor an den laufenden Prozessen). Das hat unter 11.x immer hervorragend geklappt und der BOINC Manager hat auch klaglos seinen Dienst verrichtet.

    Nun aber will der BOINC Manager nicht mehr. Wenn ich ihn starte öffnet sich zwar das Fenster, aber es werden keine Aktivitäten angezeigt und auf der Konsole wird im Sekundenabstand eine Fehlermeldung ausgegeben:
    „Fehler: Kann den offiziellen Hostnamen nicht bekommen (Fehler 0: Erfolg)“
    Da kann ich mir nun leider keinen Reim mehr drauf machen…

    Viele Grüße aus Köln
    Harald

    • Ich muss zugeben das ich mich in der Hinsicht damit noch nicht auseinandergesetzt habe. SChlussendlich habe ich den BOINC Client unter http://boinc.berkeley.edu/ heruntergeladen und einen Autostarteintrag in KDE angelegt. Ist zwar nicht ganz so schön gelöst aber „Works for me“.

  2. Hallo liebe openSUSE und BOINC Nutzer,

    ich habe mich mit dem Problem herumgeschlagen, dass BOINC auf openSUSE 12.1 nicht richtig funktioniert hat. Eine schöne Anleitung zur Prüfung der korrekten Installation und Behebung möglicher Probleme habe ich auf der Website vom openSUSE Projekt gefunden:

    https://build.opensuse.org/package/view_file?expand=1&file=README.SUSE&package=boinc-client&project=openSUSE%3A12.1

    Ich musste den boinc-client manuell als root starten und im boinc manager unter extras>computer auswählen… den Rechnernamen als „localhost“ und das Passwort aus der Datei /var/lib/boinc/gui_rpc_auth.cfg eingeben. Dann ging’s.

    Viele Grüße
    Stefan

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *