|
|
LinuxNetMag #3
 Druckversion
|
|
Auf der Suche nach
außerirdischer Intelligenz kann jetzt jeder Computerbesitzer mithelfen,
denn die Auswertung
der empfangenen Daten mehrerer Radioteleskope wird nun über
das Internet für jeden Interessierten möglich.
[ Einleitung | setiathome
| Setiview | tkseti | X-Seti
| Setiherder | Tips ]
|
ET
schickt uns einen Peak
|
Weltweit empfangen riesige Radioteleskope
elektromagnetische Wellen aus den Tiefen des Welltalls. In der Hoffnung, daß
fremde Intelligenzen mit Hilfe dieses Mediums miteinander kommunizieren,
oder auch versuchen mit anderen Lebewesen Kontakt aufzunehmen, hofft man
einen Beweis für die Existenz außerirdischer Intelligenz zu
erhalten.
Erschwert wird die Arbeit der Astronomen
dadurch, daß im Weltall durch natürliche Phänomene reichlich
elektromagnetische Wellen erzeugt werden. Derartige Wellen sind zwar für
die Wissenschafter auch interessant, da sie Rückschlüsse über
den Aufbau der Regionen des Weltalls geben (z.B. die 21-cm-Linie, welche
Informationen über die Wasserstoff-Konzentration gibt), sie sind aber
bei der Suche nach Wellen künstlichen Ursprungs störend,
da sie diese überdecken. Deshalb muß dieses natürliche
Hintergrundrauschen herausgefiltert werden, und die übrig bleibenden
Intensitätsspitzen, sogenannte Peaks, dann hoffentlich künstlichen
Ursprungs sein. Diese Arbeit ist jedoch sehr rechenaufwendig,
und da an den Radioteleskopen stündlich neue Daten anfallen, hat sich
mit der Zeit ein ständig wachsender Berg an noch nicht untersuchten
Daten angesammelt.
Um nun auch diese Daten zu untersuchen,
entstand die Idee, die Rechenarbeit über das Internet zu verteilen,
und interessierten Benutzern die Möglichkeit zu geben, auf ihrem eigene
PC die Daten zu analysieren. So entstand das Projekt Seti@Home.
Die Algorithmen waren recht schnell programmiert, jedoch dauert die Entwicklung
der notwendigen Hardware, welche für die Verwalung und den Versand
der Daten benötigt wurde, um so länger. Erreicht wurde dieses
Projekt schließlich mit Hilfe öffentlicher Förschungsgelder
und der Unterstützung namhafter Firmen.
Seit einiger Zeit ist der Softwareclient
nun mit der Version 1.0 aus dem Entwicklungsstadium herausgewachsen, und
wurde auf viele Betriebssysteme portiert.
Seti@Home
|
Das notwendige Programm zum Bearbeiten
der Daten heißt "setiathome". Die verschiedenen Versionen für
mehrere Betriebssysteme stehen unter http://setiathome.ssl.berkeley.edu/
zum Download bereit.
Nach dem Entpacken des Programms sollte
man dieses nach /usr/local/ kopieren
und einen symbolischen Link (ln
-s) der Binärdatei setiathome nach /usr/local/bin/
setzen, so daß es für alle Benutzer erreichbar ist (Dafür
muß auch die Variable $PATH
dieses Verseichnis beinhalten).
Vor dem Starten sollte man in seinem Home-Verzeichnis
ein Unterverzeichnis "~/setiathome/"
anlegen, da dort dann die eigenen Daten abgelegt werden.
Nun sollte man sich in dieses neu erstellte
Verzeichnis begeben und von dort aus setiathome aufrufen. (Man muß
immer erst in das Verzeichnis wechseln, da dort die Daten abgelegt und
bei Programmstart auch gesucht werden. Befindet man sich in einem anderen
Verzeichnis, kann setiathome
die benötigten Daten nicht finden).
Während des ersten Starts sollte
man eine Verbindung ins Internet haben, da man sich ersteinmal beim Seti-Server
anmelden muß. Abgefragt werden neben email-Adresse , welche später
zur identifikation des Benutzers genommen wird, auch ein beliebiger Spitznahme,
das Land in dem man beheimatet ist, die Postleitzahl und ob man die Berechnugen
auf einem Schul, Heim oder Arbeitsplatzrechner durchführt. Sind diese
Formalitäten erledigt, nimmt setiathome
Kontakt zum Server auf, meldet den Benutzer an und läd das erste Datenpaket
herunter. Danach startet das Programm sofort mit den Berechnungen.
Da das Programm die CPU zu 100% ausnutzt,
kann dieses den Rechner schnell für andere Programme unbedienbar langsam
machen. Man sollte setiathome
deshalb ersteinmal beenden (Man kann das Programm überall unterbrechen,
ohne daß Daten verloren gehen).
Eigentlich war setiathome
als ein Bildschirmschoner geplant, der immer dann arbeitet, wenn der Rechner
sowieso nicht genutzt wird. Da es unter Linux aber keinen einheitlichen
Bildschirmschoner gibt, ist eine derartige Programmeinbindung nicht ohne
weiteres möglich gewesen.
Stattdessen bietet Linux die Möglichkeit,
einzelnen Programmen verschiedene Prioritäten zuzuordnen. Dies erfolgt
mit Hilfe des Befehls "nice".
Setiathome unterstützt diesen Befehl sogar als Option, so daß
mit
>>setiathome -nice 20
das Programm mit niedrigster Priorität
gestartet wird und somit die Arbeit des restlichen Systems nur minimal
verlangsamt.
Die Option "
-email >/dev/null"
unterdrückt jegliche Ausgaben des Programmss und informiert den Benutzer
nur in Notfällen per e-mail.
Hat das Programm die Berechnungen beendet,
nimmt es erneut Kontakt zum Setiserver auf, schickt diesem die Ergebnisse
zurück und holt sich gleich eine neue Datei für weitere Berechungen.
Dies klappt natürlich nur, wenn man eine Standleitung besitzt. Falls
das Programm keine Verbindung zum Server aufbauen kann, versucht es alle
60 minuten die Daten loszuwerden. Effektiver ist es in einem solchen Falle,
das Programm zu stoppen, und dann, wenn man eine Internetverbindug aufgebaut
hat, per Hand erneut zu starten. Denn dann werden die Daten sofort ausgetauscht.
Mit der Option "-stop_after_process"
kann man verhindern, daß das Programm gleich nach dem Beenden der
Berechnungen versucht eine Verbindung zum Seti-Server aufzubauen. Diese
Option ist folglich dann nützlich, wenn man keine Standleitung besitzt.
Wer nur einmal täglich eine Verbindung
zum Internet aufbaut und einen so schnellen PC besitzt, daß er die
Daten innerhalb der 24 Stunden fertig berechnet bekommt, kann sich auch
mehrere "Setis" anlegen. Jedoch benötigt jede Instanz ein eigenes
Verzeichnis, in der es arbeiten kann. Ansonsten kann es zu Fehlern kommen,
da die Dateien gegenseitig überschrieben werden. Neuere Seti-Versionen
erkennen selbstständig, ob in dem Verzichnis schon ein anderer Client
arbeitet.
Setiathome
läuft unter Linux als Konsolenprogramm und erzeugt keinerlei graphische
Ausgaben. Auf dem Prompt wird jeweils ausgegeben, wieviel Prozent bereits
abgearbeitet wurden.
Diesen Mißstand wollen nun einige
Programme beheben, und bieten graphische Oberflächen für setiathome
geschrieben. Setiview ist ein derartiges Frontend, allerdings nicht für
X-Windows, sondern auch für die Konsole. Neben Informationen über
den Ursprung der Daten (Teleskop, Frequenzbereich, Himmelsrichtung ...)
liefert das Programm einen Prozentbalken, der den bisher abgearbeiteten
Anteil anzeigt.

TkSeti ist ein weiteres Frontend (Screenshot),
diesmal jedoch für X-Windows, und es benutzt TCL/TK 8.0. TkSeti kann selbstständig
einen Seticlient starten, jedoch auch bei einem bereits laufenden Client
die Daten anzeigen. Konfigurieren läßt sich das Programm komfortabel
über das Frontend selbst, keine Textdateien müssen per Hand angepaßt
werden. Im ikonisierten Zustand zeigt das Programm über den Icon-Namen
den bereits abgearbeiteten Prozentsatz.
Die wohl herausragendste Funktion vonTkSeti
ist es, den Seti-Client so lange zu stoppen, wie auf dem Computer vom Benutzer
gearbeitet wird. Das Programm überprüft dafür regelmäßig
die Interrupts verschiedener Devices und erkennt somit, ob diese benutzt
werden.
Sinvoll ist es hier die Interrupts der
Maus (seriell) und des Keyboards zu benutzen und ein Zeitintervall
von 1 bis 10 Minuten einzustellen. Werden diese beiden Geräte dann
nicht benutzt, springt der Seti-Client nach der eingestellten Zeit automatisch
an und wird wieder beendet, sobald die Maus oder die Tastatur benutzt wird.
Dies funktioniert natürlich auch zusammen
mit einem bereits installierten Screensaver, der dann zusätzlich anspringt
(Der Screensaver sollte dann aber nicht zuviel Rechenzeit benötigen)
Achtung:
Falls
man ein Programm wie tleds oder NetLED benutzt, welches auf den Keyboard-LEDs
den Netzwerk-Verkehr anzeigt, sollte man nur die Interrupts des seriellen
Ports einstellen, weil dann ein einzelnen verschicktes oder empfangenes
Netzwerkpaket die Interruptzahl der Tastatur erhöht und der Seti-Client
beendet wird.
Ein
weiteres Frontend ist X-Seti, welches sich durch seine ansprechende Oberfläche
auszeichnet. Es kann auch mit dem XScreensaver als Plugin zusammenarbeiten.
X-Seti bietet die Möglichkeit das Fenster soweit zu minimieren, daß
es nur den Prozentbalken anzeigt, dieser ist aber für die dauernde
Benutzung etwas überdimensioniert. Vorbildlich ist da schon die Eigenschaft,
daß das Icon des Programms auch einen Prozentbalken beherbergt und
man somit immer informiert ist, wieviel bereits abgearbeitet ist.
Wer jedoch nicht den XScreensaver benutzt,
wird das Programm ständig im Hintergrund laufen lassen müssen,
was trotz eines Nice-Wertes von 20 die Arbeit am PC beeinträchtigen
kann.
Ein ganz anders ausgerichtetes Programm
ist Setiherder. Dieses dient nicht als Frontend für einen Setiathome-Client,
sondern kann gleich mehrere Clients bedienen, die im Netzwerk über
verschiedene Rechner verteilt sind. Wer also die Möglichkeit hat,
auf mehreren Rechnern gleichzeitig setiathome
laufen zu lassen, muß sich nun nicht mehr bei allen Rechnern einzelnd
per telnet zum starten der Programme einloggen, sondern kann alles
vom eigenen PC mit einem einzelnen Programm administrieren.
Voraussetzung dafür ist allerdings,
daß man auf alle Rechner mit remote-shell (rsh) zugreifen kann, da
über diese die Befehle an die Clients geschickt werden. Somit hat
man dann immer Kontrolle über alle Seti-Schäfchen im Netz.
In vielen Firmen, die eine Standleitung
besitzen, werden die Rechner nachts nicht ausgeschaltet. Jede Nacht liegen
somit tausende von Rechnern brach, ohne daß ihre Kapazitäten
genutzt werden. In derartigen Fällen bietet es sich förmlich
an, den Rechner über Nacht sozusagen der öffentlichen Forschung
bereitzustellen und Setiathome darauf laufen zu lassen. Selbst wenn Sie
einen Windowsrechner besitzen, können sie das Programm benutzen. Ein
Linux-Benutzer hat es allerdings einfacher, denn hier können Sie abends
nach Arbeitsende skriptgesteuert das Programm starten lassen und morgens,
noch bevor Sie Ihren Arbeitsplatz erreichen, automatisch beenden lassen.
Durchführbar ist dies mit Hilfe der Crontab, die zeitgesteuert Programme
aufrufen kann. Diese läßt sich entweder über einen Texteditor
ändern
>> crontab -e
oder komfortabler über vcron (Siehe
LinuxNetMag: vcron und kcrontab).
Zusätzlich benötigen sie auch
noch ein Skript, welches das Starten und Beenden des Clients übernimmt.
Dieses Skript wurde den init-Skripten nachempfunden, welche dafür
zuständig sind, während des Bootens Programme zu starten und
beim Reset die Programme wieder zu beenden.
Das Skript liegt hier zum download
bereit. (Beachten Sie, daß das Programm als ausführbare Datei
gekennzeichnet ist, ansonsten ändern sie dies mit "chmod
+x").
Das Skript muß zunächst noch
an die eigenen Pfade angepaßt werden, dafür ändert man
in den ersten Zeilen die Variable SETIDIR, die zum Verzeichnis zeigen muß,
in dem die Daten gelagert werden. NICE gibt an, mit welchem Nice-Wert setiathome
laufen soll und muß einen Wert zwischen 0 und 20 besitzen. Je höher
der Wert ist, desto geringer ist die Priorität des Programms.
Arbeitet man nun z.B von 9.00 Uhr bis
17.00 Uhr, dann schreibt man in die crontab (nach ausführen des Befehls
"crontab -e") in die geöffnete Textdatei:
|
crontab
|
# starte setiathome täglich um 17.00
00 17 * * * /pfad/zu/seti-script-user start
# beende setiathome täglich um 9.00
00 9 * * * /pfad/zu/seti-script-user stop |
Speichern sie die Textdatei ab und beenden
sie den Texteditor.
Nun wird setiathome
über nacht automatisch gestartet und und morgens beendet. Der dadurch
entstehende Netzwerkverkehr ist so gering, daß er keinen Netzwerkadministratator
stören sollte.
Sie können mit der Crontab auch das
Programm nur am Wochenende starten. Dafür genügt ein Eintrag
wie
|
crontab
|
# starte setiathome am Freitag um 23.00
00 23 * * 5 /pfad/zu/seti-script-user start
# beende setiathome am Montag um 1.00
00 1 * * 1 /pfad/zu/seti-script-user stop |
Somit wird das Programm jeden Freitag in
der Nacht gestartet und Montag Morgen beendet.
Weitere Informationen über die Benutzung
der Crontab erhalten Sie mit
>> man crontab
oder falls installiert mit
>>tkman crontab
Platz für Kommentare & Fragen:
(selbst eintragen)
-Seti init script - 30-9-00, Prinz Artus
|