Search for Extra Terrestrial Intelligence (SETI) using BOINC via the [email protected] Project
The purpose of this article is to get your Ubuntu based personal computer or server, up and running with a citizen science project known as [email protected] running BOINC to do so. BOINC is a program that lets you donate your toaster's idle computer time to science projects like [email protected] which this article is about. Other projects include Climateprediction.net, [email protected], World Community Grid, and several others. Below I have a brief background on the SETI program and the distributed [email protected] program that I assume you’re here for so feel free to skip to the Getting Started section below if you’re already familiar with history.
Founded in November 1984, the SETI Institute began operations on February 1, 1985. Today it employs over 130 scientists, educators, and support staff. Research at the Institute is anchored by three Centers: the Carl Sagan Center for the Study of Life in the Universe, the Center for Education, and the Center for Public Outreach. Nathalie Cabrol is the Director of the Carl Sagan Center, Edna DeVore leads our Center for Education, and Rebecca McDonald helms the Center for Public Outreach.
SETI stands for the Search for Extra Terrestrial Intelligence. The SETI Institute is a non-profit corporation that serves as an institutional home for research and educational projects relating to the study of life in the universe. The Institute conducts research in a number of fields including astronomy and planetary sciences, chemical evolution, the origin of life, biological and cultural evolution.
One aspect of the program is to scan the night sky and to search for narrow band frequencies that we don't believe occur from sources such as rotating stars, quasars, or other periodic signals. Suddenly detecting a narrow band beeping that's repetitive and iterating through the values of pi in a base 10 numerical system may indicate that someone (or something) that isn't humans may possibly be transmitting. Also keep in mind that SETI is only listening. It does not transmit.
The Drake Equation
The research that they do can be referenced to a famous equation, known as the Drake equation, devised by Frank Drake in 1961 which basically tells us how many intelligent life-forms possibly exist in the universe. It can be summarized as:
N=R* fp ne fl fi ft L
R* = the birth rate of stars in our galaxy, number per year
fp = the fraction of stars with planets
ne = the number of planets per solar system that are suitable for life
fl = the fraction of such planets that actually spawn life
fi = the fraction of planets with life that evolve intelligent life
ft = the fraction of planets with intelligent life that produce technologically capable life
L = the average lifetime (in years) of a technological society
The problem is a lot of these variables are unknown such as the fraction of planets that actually spawn life and eventually evolve intelligent life. Currently, we only know of one such planet. According ot the seti.org website, "While the first three terms of the equation have been successfully investigated by astronomers and are to some extent known, values for the last four are still speculative. The 1961 Green Bank meeting did not publish any numerical values for the terms of the Drake Equation, although Drake himself estimates that N might be as high as 10,000. Carl Sagan was more optimistic, and said that N could be a million or more. Other people have been less sanguine, and suggest that N might only be 1 – in other words, we might be the only technically sophisticated society in the galaxy."
What is [email protected]? According to their website, “[email protected] is a scientific experiment, based at UC Berkeley, that uses Internet-connected computers in the Search for Extraterrestrial Intelligence (SETI). You can participate by running a free program that downloads and analyzes radio telescope data.”
This project utilizes the computer science field known as distributed computing. While most of the SETI programs today analyze the data they receive in real time, it’s important to note that these computers aren’t looking very deeply at the data for weak signals. This work is then handed off to all the idling toasters that are just sitting and not really doing anything. It’s a great use for citizens (e.g. you and me) to be able to contribute to this cause by donating some computing time by simply installing a program on our computers.
The Atlantic also provided an excellent article with some of the history that led up to the project here.
PBS Space Time has a great video describing other Citizen Science projects that are available for you to participate in:
You can read more about SETI and their mission here: https://www.seti.org/about-us
This tutorial is a loose adaptation of the one provided by Digital Ocean here. Let's get started!
1. Installing Boinc-Client
As with any Linux installation, start out with the usual updating procedures.
sudo apt update && sudo apt upgrade
Once the updates and upgrades have completed, let's install the BOINC client that we'll be running the [email protected] program from. These are already available in the repositories with both Debian and Ubuntu!
sudo apt install boinc-client
2. Connecting to a [email protected] Account
With the BOINC client installed, you'll need to then pass your [email protected] account keys so that the program saves to your account. The first thing you'll need to do is create an account so you can log in and earn credits for the work your toaster has completed. Once you've completed the registration process, you'll need your Account Keys. Here's the link to the [email protected] website website.
When you first log in, in the Account Information section, click View next to the Account keys field. Your account key will be displayed on the next page. Run this command with the account key on the Account keys page:
boinccmd --project_attach http://setiathome.berkeley.edu account_key
As soon as you do this, the program will start processing with all the default values so run the following command to temporarly stop it so that we can tune the CPU preferences (e.g. tell the CPU how fast to run). BOINC's default CPU usage is at 100% so you may want to throttle this down a bit.
sudo service boinc-client stop
3. Configuring the CPU Usage Preferences
The configuration settings is located in /var/lib/boinc-client/ as an XML file named global_prefs_override.xml. By default, it'll only have the following text:
This configuration file global_prefs_override.xml for the BOINC core client
can be used to override global preferences locally. For a complete list of
all preferences which can be overridden see:
Delete this text, and insert the following which sets your Suspend CPU Usage to 50, and the CPU Usage Limit to 25:
<global_preferences> <run_on_batteries>0</run_on_batteries> <run_if_user_active>1</run_if_user_active> <run_gpu_if_user_active>0</run_gpu_if_user_active> <suspend_cpu_usage>50.000000</suspend_cpu_usage> <start_hour>0.000000</start_hour> <end_hour>0.000000</end_hour> <net_start_hour>0.000000</net_start_hour> <net_end_hour>0.000000</net_end_hour> <leave_apps_in_memory>0</leave_apps_in_memory> <confirm_before_connecting>1</confirm_before_connecting> <hangup_if_dialed>0</hangup_if_dialed> <dont_verify_images>0</dont_verify_images> <work_buf_min_days>0.100000</work_buf_min_days> <work_buf_additional_days>0.500000</work_buf_additional_days> <max_ncpus_pct>100.000000</max_ncpus_pct> <cpu_scheduling_period_minutes>60.000000</cpu_scheduling_period_minutes> <disk_interval>60.000000</disk_interval> <disk_max_used_gb>10.000000</disk_max_used_gb> <disk_max_used_pct>90.000000</disk_max_used_pct> <disk_min_free_gb>1.500000</disk_min_free_gb> <vm_max_used_pct>75.000000</vm_max_used_pct> <ram_max_used_busy_pct>50.000000</ram_max_used_busy_pct> <ram_max_used_idle_pct>90.000000</ram_max_used_idle_pct> <max_bytes_sec_up>0.000000</max_bytes_sec_up> <max_bytes_sec_down>0.000000</max_bytes_sec_down> <cpu_usage_limit>25.000000</cpu_usage_limit> <daily_xfer_limit_mb>0.000000</daily_xfer_limit_mb> <daily_xfer_period_days>0</daily_xfer_period_days> </global_preferences>
Taking this text straight from the Digital Ocean website:
The first preference is cpu_usage_limit, which is used to limit the amount of CPU used by [email protected] The example file uses a setting of 25.000000, meaning CPU usage is limited to 25% max. 25.000000 is a good setting if your machine is dedicated for another task or service but contribution to [email protected] is still desired.
The second preference is suspend_cpu_usage which is used to temporarily suspend [email protected] from operation when CPU usage by other application reaches that level. In the example file, suspendcpuusage is set to 50.000000, or 50%.
You can read more about BOINC preferences on their wiki.
4. Starting the Boinc-Client
After you save the above preferences, run the following command start the boinc-client program and start earning SETI credits!
sudo service boinc-client start
5. Verifying the Newly Added Host Online
After running for 5 or 10 minutes, your host should be appearing on the [email protected] website. Once logged in, click on View Computers the work yours has contributed
6. Checking the Status of the Work Completed via the Terminal
You can also view the status of the work you've completed with the following command:
That's it! You're computer is now helping out with the search for extra-terrestrial intelligence! Be sure to join a team and reference the forum page or comment if you have any questions! Thanks for reading!