|
|
LinuxNetMag #3
 printer-version
|
|
Every user
is able to assist in searching for extraterrestrial
intelligence.
The
analysis of the data taken with radio telescopes is now
possible for every interested user with access to the
internet.
[ Introduction | Seti@Home
| Seti view | tkseti
| X-Seti | Seti
herder | Hints ]
| E.T.
is Sending a Peak to Us |
Large
radio telescopes worldwide receive electromagnetic waves
coming from the depths of space. Attempting to locate alien
intelligent communication or trying to contact other life
forms, these telescopes should find proof.
This
search is not easy because many natural phenomenon also
send electromagnetic waves into space. These waves are
also interesting for scientists because they allow us to
deduce the construction of regions in space (like the
21-cm-line including information about hydrogen
concentration). These lines interfere with the search for
waves coming from artificial sources. This naturally
occurring "noise" has to be subtracted and the
remaining peaks might be the searched signals. This work
takes a lot of PC-power and new data arrives hourly.
The idea was to spread the work
around the internet and offer interesting users the
ability to analyze the data with their home PCs. To
accomplish this, the project Seti@Home was founded. The necessary
algorithm were programed very fast but it took a longer
time to install the hardware that administrates the data
handling. The project was completed with support by the
government and well known companies.
A longer time ago the
software client was released in version 1.0 and was
transferred on many platforms.
Seti@Home |
The
necessary program to derive the data is called setiathome.
The different version for the different platforms are
available at http://setiathome.ssl.berkeley.edu/. After you untar the program, you
should copy it to /usr/local/ and create a
symbolic link (ln -s) to the binary file setiathome
in /usr/local/bin/. This way every user will have
access to it if /usr/local/bin/ has been added to
the default path with $PATH.
Before starting you should
create the subdirectory ~/setiathome/ where the
received data and some more files are saved. Then change
to this directory and start setiathome
there. (You should always to change into the seti
directory before starting because the data are always
saved in the directory where you start setiathome.)
During the first start, you
need a connection to the internet because you have to
announce yourself to the seti server. The program asks
for 1) your email address which is used as the ID, 2) a
nickname, 3) your home country and 4) if you work at a
school, home or company computer. Then it connects to the
seti@home server and announces you. After that, your
first data package will be downloaded and the
calculations will begin.
Seti@home was designed to
work as a screen saver and should only work when you do
not use your computer. Because a universal screensaver
does not exist at Linux, including it into other programs
is not easy. Still, Linux, like all Unix systems, offers
the ability to establish a priority to the program using
the command nice. Seti@home has included
it as an option which can be invoked at startup with:
>> setiathome
-nice 20
The program will be
started with the lowest priority and it only slows down
the system just a little bit. If you want to start it in
the background or you are not interested in the output
you should start it with the option -email. To
suppress the output you should add >/dev/null at
the end.
After working through the
whole data setiathome tries to connect
the seti server to send the results and get the new data.
If it does not find the server it will retry it in 60
minutes. It is much more efficient to stop the program
and, after dialing into the internet, restart it again.
With the option -stop_after_process,
setiathome will not try to connect the
server after finishing the file.
If your PC is very fast and
you manage to process more than one data file between the
two dial-ins, you could create more seti directories.
Every job needs its own directory where you have to call setiathome,
otherwise errors could occur if two programs work on the
same data.
Setiathome runs
in a console and does not create any graphical output.
The prompt shows how what percentage of the data has been
processed and where the data came from. You can find some
programs on the internet that offer graphical frontends
for setiathome. Setiview is one of these
frontends, not for X-Windows, but for the console. In
addition to displayinginformation about the source of the
data (telescope, frequency, direction, etc.), it offers a
view of the percentage of data that has been processed.
TkSeti is another front end (Screenshot), but this time for X-Windows,
using TCL/TK 8.0. TkSeti is able to start a seticlient by its own
but can also show the data of a running client. The
program can be comfortably configured via the frontend
itself and no text files have to be edited. If you
iconize the program, you would see the percentage of
completion above the name of the icon.
The most worthwhile option
of TkSeti seems to be that it stops the seti-client as
long as the user works with the computer. The program
regularly checks the interrupts of different devices and
in this way decides if the user is still active. It makes
sense to use the serial and the keyboard device and
configure a time of 1 to 10 minutes of idleness. If these
two devices have been idle for this time, the seti client
would start and would be stopped if you used one of them
again. Of course
this functions together with a screensaver, but the
screensaver option should not need much CPU power.
Attention: If you use a
program like tleds or NetLED that shows the network
traffic using the keyboard LEDs you should not use the
keyboard device because the network traffic raises the
keyboard interrupt counter and would stop the
seti-client.
Another frontend that has a good
looking design is X-Seti; it works as a plugin with
XScreensaver. X-Seti offers the ability to minimize the
window and it keeps on showing you the percentage. But
the iconized program can allow you to see the percentage,
too, but at a reduce size.
If you do not want to use
the XScreensaver, you would have to run seti all the
time. This would disturb your work, even with a nice
value of 20.
A complete different program is
setiherder. This is not a frontend for a seti-client but
it is able to server many clients inside a network using
more than one computer. If you have access to more than
one PC and you can run more setis on these at the same
time and you do not need to login everywhere with telnet
to start seti, setiherder could be a good choice. You can
administrate all clients from one computer.
The remote shell (rsh) is
necessary for setiherder to access the computers. Now you
have all seti sheaps under control inside your net.
Many
companies have a connection to the internet and the PCs
are not switched off in the night. Every night thousands
of computers are "sleeping" and their
capacities are not used. These illustrations show how
much sense it could make if these companies
"offer" their PCs for public research and run
setiathome on their network. Even if you own a MS Windows
computer you, are able to use the client. But Linux users
have it much easier because the client can be started via
a script every night and then stopped automatically in
the morning before you reach your working place. This
could be managed using crontab, a program that runs
programs at a specific time. Either you change it with a
text editor by starting it with
>> crontab
-e
or change it easily with
vcron (LinuxNetMag: vcron and kcrontab).
Additionally, you need a
script that handles starting and stopping via a script.
This script is a changed init-script which starts and
stops programs during booting and rebooting. You will
find the script here to download it. (To start the program it has
to be changed to an executable with chmod +x filename)
Of course you have to adjust
the script to your paths. Change the variable SETIDIR. It
is the guide to your seti directory where the data are
saved. With nice you set the nice value
for setiathome which has to be an integer between 0 and
20. The higher the value, the less the priority of the
program.
For example, it you work
from 9:00 a.m. to 5:00 p.m., you could write in the
crontab (after starting crontab -e):
|
crontab
|
# start setiathome daily at 5.00 pm
00 17 * * * /path/to/seti-script-user start
# stop setiathome daily at 9.00 am
00 9 * * * /path/to/seti-script-user stop |
Save the text file and exit the
text editor. Now setiathome will be
started every evening and stopped every morning. Also,
you may want to start it just before weekend. Therefore,
you enter:
| crontab
|
# start setiathome
friday(5) at 11.00 pm
00 23 * * 5 /path/to/seti-script-user start
# stop setiathome monday(1) at 1.00 am
00 1 * * 1 /path/to/seti-script-user stop |
Now Linux
will start setiathome every Friday night
and stop it every Monday morning.
Much more information about
crontab is available typing
>>man
crontab
or, if installed ,
>> tkman
crontab
Other
LinuxNetMag-Articles to this theme at
|