BSD DevCenter
oreilly.comSafari Books Online.Conferences.


FreeBSD Basics



If you've ever watched the movie Contact and felt the excitement that comes from the possibility of finding intelligent signals from outer space, you may find the SETI@home project interesting. Even if you're not interested in extraterrestrial life, this project does provide an interesting example of collaborative computing.

In today's article, I'd like to demonstrate the usage of FreeBSD's "setiathome" client and several of the GUI front ends that are available for this client from the ports collection.

Before I begin, what is collaborative computing? In a nutshell, it is a way to harness the processing power of CPUs running on many different computers so they can all work on a common project. Those who participate in a collaborative project "donate" idle CPU cycles to help process vast amounts of research data.

There are several such projects on the Internet, all of which give you the possibility of fame and fortune. The first is This site is currently hosting four projects that deal with testing the strength of encryption algorithms or calculating Golomb Rulers. If none of that makes any sense to you, the site also provides an introduction to the mathematical concepts behind each of the projects.

Another collaborative project deals with a mathematical concept known as Mersenne primes and can be found at The Great Internet Mersenne Prime Search. It's encouraging to read how a 20-year-old Canadian found the latest Mersenne prime on his 800MHz computer.

And the last project is the one we will be concentrating on today. The SETI@home site is a gold mine of fascinating information as well as FAQs and statistics regarding the project.

Okay, without any further ado, let's become the superuser and build the setiathome client:

cd /usr/ports/astro/setiathome

Once the build is finished, type exit to leave the superuser account and cd to return to your home directory.

Before we start building the GUI front ends, let's run setiathome from the command line. This is important because the first time this application is run, it requires some user input to configure it. You'll also want either to be in your home directory, or to create and cd into a subdirectory of your home directory that will hold the setiathome working files. I'll demonstrate this initial configuration as the user "genisis" in her home directory:


New software version - deleting temp files.
SETI@home client.
Platform: i386-unknown-freebsd2.2.8
Version: 3.03

SETI@home is sponsored by individual donors around the 
world. If you'd like to contribute to the project,
please visit the SETI@home web site at
The project is also sponsored by the Planetary Society,
the University of California, Sun Microsystems, Paramount 
Pictures, Fujifilm Computer Products, Informix, Engineering 
Design Team Inc, The Santa Cruz Operation (SCO), Intel, 
Quantum Corporation, and the SETI Institute.

SETI@home was developed by David Gedye (Founder),
David Anderson (Director), Dan Werthimer (Chief Scientist),
Leonard Chung, Hiram Clawson, Jeff Cobb, Charles Congdon, 
Charlie Fenton, Kyle Granger, Eric Heien, Mike Hill, 
Michael Kang, Eric Korpela, Matt Lebofsky, Peter Leiser, 
Brad Silen, Woody Sullivan, and Adam Wight.

Welcome to SETI@home.
We use your email address to identify you.
Please type:
    1 to set up a new account (first-time users);
    2 to log into an existing account (returning users).
Your choice (1 or 2): 1

Your email address:
OK to show your email address on the SETI@home web 
  site? (y/n): n
Your name or nickname: Dru
OK to show your name on the SETI@home web site? (y/n): n
Your country number (Return see country list): 
Your country number: 38
Your postal code: K7P 2S9
Computer location: 0=unspecified 1=school 2=work 3=home :3

Here's your account info:
Email address:
OK to show email address? no
Name: Dru
OK to show name? no
Country: Canada
Postal code: K7P 2S9
Computer location: Home

Everything correct? (y/n) y

Once your account information has been verified, wait for your client to connect to the database at Berkeley. Once you've logged in, you'll see the rest of the configuration:

Logged in as Dru (
Number of work units processed: 0
Total CPU time: 0.000000
Found data file: no. Found result header file: no.
Getting data - connecting to server.
Receiving data: 10K
<snip the 10k increments>
Receiving data: 340K
All data received.
Scanning data file
Data Info:
Sky coordinates: 14.492 R.A.,  9.510 Dec
Recorded on:  2452001.74472 (Mon Apr  2 05:52:24 2001)
Source: Arecibo Radio Observatory
Base Frequency: 1.420625000 GHz
Beginning analysis...
	(This is the last message displayed while the client 
	works. To see progress messages between now and 
	completion of processing, operate the client with 
	the -verbose option. You can also see the progress 
	of the client by looking at the 'prog=' line in the 
	state.sah file.

Once the configuration is finished, SETI@home will work quietly in the background, processing your job order. You'll note that you will have lost the prompt at this terminal, but you can use your Alt-F keys to navigate to other terminals. The configuration process creates several files with a .sah extension:

ls | grep .sah


To stop the client, press "Ctrl-C". You can also restart the client with the verbose switch to monitor your progress:

setiathome -verbose

Found data file: yes. Found result header file: yes.
Scanning result header file.
Beginning analysis...
Doing baseline smoothing.
Starting work for Doppler shift rate 0.000000, FFT length 2048
0.055015% done
... Searching for Pulses
Starting work for Doppler shift rate 0.000000, FFT length 1024
... Searching for Gaussians
... Searching for Pulses

If you're not sure what Gaussians and Pulses are, the glossary at the project's site is quite helpful.

Pages: 1, 2

Next Pagearrow

Sponsored by: