SETI@Home Optimizers on Linux

September 28, 2008 – 2:13 am

As I am a big proponent of the SETI@Home project as well as a Linux user, discovering that optimized SETI applications existed and how to use them was important. It took quite some time to figure this all out by myself since there are hardly any (from what I could find) resources on SETI@Home optimized clients on Linux. Eventually I ran into this site which offers SSE3 and SSSE3 optimized clients for Linux in addition to SSE, SSE2, and SSE3 clients for FreeBSD.

For those of you who don’t know what SETI@Home optimizers are, they are essentially specialized versions of the standard version of the SETI@Home client which take advantage of extended floating-point instruction sets available to certain x86 (Intel, AMD, or the like) processors. Using these instruction sets allows optimized clients to complete work many times faster than it could before with the standard client. For example, prior to using an SSSE3 optimized client on my Intel Core 2 Quad Q6600 my recent average credit (RAC) on SETI was in the 500 range including one other active machine and now my RAC has spiked over 2,500 not including the other active machine.

Before we get started, you should make sure that all other active work units you have running are completed before replacing the standard client with an optimized one. Then you may choose which optimize client you will run. Keep in mind that currently, only Intel Core 2 based CPUs and a single VIA CPU are capable of running SSSE3 instructions. For more details on this you should refer to the SSSE3 wikipedia page. Otherwise, you will likely be able to run an SSE3 optimized client, unless your CPU is more than several years old, also refer to wikipedia for more information on this. If you’ve got an even older CPU, there are also clients for MMX, SSE, and SSE2.

Optionally you may check which instruction sets are supported by your CPU using the following command:

[maddog39@desktop ~]$ cat /proc/cpuinfo | grep flags | tail -n 1
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm

First thing we want to do is download the client for your respective CPU and kernel version (most likely SSE3 or SSSE3 and kernel 2.6) from this page and extract the tarball. If your using an older CPU requiring an older instruction set, see this page instead.

Before we actually drop in the optimized client, its probably best to suspend the SETI@Home project in BOINC for safe measure.

Now we get to physically install our new SETI@Home optimizer. In the folder you extracted from the tarball, you should find a binary (executable) and an app_info.xml file, either in the folder’s top directory or in a subsequent sub-folder.

You want to copy these files and launch nautilus (or your file manager of choice) as root and point it to the /var/lib/boinc folder. Hit Alt+F2 to bring up a run dialog and enter the command:

gksudo nautilus /var/lib/boinc/projects/setiathome.berkeley.edu

Paste the optimizer files into the directory and when comes up. Finally, you will need to restart the BOINC daemon. On my distribution, Arch Linux its:

sudo /etc/rc.d/boinc restart

Although if you are using Ubuntu, Debian, or a derivative its:

sudo /etc/init.d/boinc restart

Then, to start using your new SETI optimized client, you simply launch BOINC manager and resume the SETI@Home project. It should start downloading new workunits immediatley and your in business. I hope you found this article useful and keep in mind that I tried to keep it as easy as possible for the newer Linux users out there.

You must be logged in to post a comment.