Distributed Computing on Mac - Q&A, First Aid, Optimizations


This guide is aimed at Mac users, for both German and English readers. Links will usually lead to English sites, you will find a (German) behind .de-websites. For those I'll provide a translation or an alternative English link wherever possible.

Who am I? I am Tilo Probst, a 21-year-old student at a Technical University in Germany. I have two G5 PowerMacs participating in SETI@home (BOINC) since Summer 2005.

Since I only participate in the SETI BOINC Project, I cannot give specific information about other BOINC projects like Einstein@home or Climateprediction.net. While most of the things stated here should apply for those too, I can only encourage you to gather information yourself.

1. Participation Guide

    How do I find "my" project?
    How do I join the SETI project?
    Should I join a team or create my own?
    Installation and optimization of the SETI CLI client
    Where can I see how well I actually do?

2. Troubleshooting

    General information on Troubleshooting SETI
    Calculation goes fine, but I am not granted any credits
    Not calculating a work unit in time

3. Optimization for Advanced Users

    Remote control of SETI on other computers
    Visualization of BOINC system use
    Avoid NAP mode

4. Background of DC, BOINC and SETI

    What is distributed computing (DC)?
    What is BOINC?
    What is SETI@home BOINC?
    What other distributed computing projects are there?
    Why should I participate?
    Should I convince other people to participate?
    Will distributed computing do anything bad to my computer?

5. Some SETI nostalgia

6. Link Compendium


1. Participation Guide

How do I find "my" project?

Of course you are free to join whatever project you want. But there are more things to be considered:
Is there a Mac version of the client software? Does that client really make use of my computer's abilities? If I run into trouble, are there Mac users who could help me out?

Unfortunately, information on poor client performance cannot be obtained from the projects' websites. You will have to rely on other users' experiences, hence you should take a look at well-visited Mac web-boards and newsgroups. The SETI project provides well optimizied clients, and there are some advanced users here in the MacNN forums to help you out. smile

    An overview of available BOINC projects
    The widely popular SETI@home BOINC
    Optimized BOINC and SETI software for Mac
    Forum thread at MacNN forums on the optimized clients

How do I join the SETI project?

If you are new to SETI, you should create an account at the Official SETI Website. After creating an account, you will receive an unique account identifier (ID). All of your participating computers will later appear under this account. With that account you can later join a team if you want. But you can also join a team without your computer(s) running under any account.

You always have to distinguish between your BOINC software and your SETI worker. Your BOINC software should be up to date to properly detect your hardware setup and for correct benchmarks, but it will not speed up your calculation of SETI work units (WUs). In order to do the last you need a SETI worker optimized for your hardware. That means that you can start your SETI activities with an easier-to-use, but slower software bundle and replace it with a faster client software later on.

YOU DEFINITELY DONT WANT TO USE the software provided at the Official SETI Website. I've wasted months on those clients, while the SETI worker here from the forums is two to three times faster, depending on your hardware.

I strongly suggest using the CLI (Command Line Interface) version of the SETI client. While it may be a bit harder to use than a graphical interface, especially for new users, it it a good chance to become familiar with the Terminal and to learn more about Mac OS X. Installation instructions are given below.

Should I join a team or stay on my own?

This is somewhat hard to answer. If you join a large team there are always some hardcore SETI members drawing all attention to themselves. As part of a large team, it is rather unlikely that you will ever contribute a relevant percentage to the team's overall credits, so there is little to no chance that people will ever recognize you. On the other hand, staying on your own makes things even worse and you are going to miss the motivating aspect of being part of a group. Anyway, there is no clear advice to be given here. There is nothing wrong with anonymously contributing a thousandth of a percentage point to a huge team.

Installation and optimization of the SETI CLI (Command Line Interface) client

You will now get a detailed installation guide for the CLI version of BOINC and SETI. An installation guide for the BOINC Manager (and SETI) can be found here in the MacNN forums.

You will need two files: the current version of BOINC, and the SETI worker. Here are direct links for the G5 versions of BOINC and the SETI worker. Versions for older hardware are here.

As often happens, setup can take more work then running it later, so don't be afraid smile
Now may be the time to quit all open applications except the Finder ... you will see why later.

Follow the first two links to obtain two files: boinc_5.2.13ppcG5gui (the BOINC software) and seti@home-G5-a5 (the SETI worker), the latter comes with an .xml file. If you are new to SETI, create a folder for the work files. For example, you could create a folder called Boinc5 in your Applications folder. The result may look like this:

SETI

Put the boinc_5.2.13ppcG5gui file into that folder. Do not put seti@home-G5-a5 in there yet! Then open the Terminal from Applications -> Utilities. What you get should look like this:

SETI

By default, all new Terminal windows start in your home folder. You can easily tell where you are by looking at what appears before the $ (or #) symbol. That is q033:~ tiloprobst for me: q033 for my computers' network address and ~tiloprobst for my home folder.

To give it a more spacey, less eye-disturbing design go to the Window Settings... menu. There, set the font color to a light blue and background color black. Give the window a transparent design and make this setting a standard for all windows.

In order to start BOINC, we have to type in its directory path relative to the HD root, this will usually be Macintosh HD. Note: if you created your Boinc folder inside your home folder instead of Applications, then there is no need to back out to the HD root before proceeding. To reach your HD root type cd / ('cd' is the command to change directory) and hit Return. Notice how the readings left of the $ (or #) changes to / . You are now at the root level of Macintosh HD (or whatever your HD is called), or / as the Terminal shows it.

Relative from here, BOINC is in Macintosh HD -> Applications -> Boinc5 in our example. In order to open BOINC, set your BOINC folder and to join a SETI account type:

/Applications/Boinc5/boinc_5.2.13ppcG5gui -dir /Applications/Boinc5/ -attach_project http://setiathome.berkeley.edu/ your_account_ID.
 
If your Terminal window looks like this now, hit Return.

SETI

-dir is an option to tell BOINC in what directory to put the working files. Never forget this option or BOINC will spread a lot of small files around your beloved hard drive! Note: You will need to use the -attach_project http://setiathome.berkeley.edu/ your_account_ID option only for the first time that you start SETI.

Three things should now happen:
   1. BOINC assigns a unique computer ID to your machine and executes benchmarks.
   2. BOINC downloads the default SETI worker.
   3. BOINC creates a lot of files and folders inside your Boinc5 folder.

BOINC will then start to download and calculate a master work unit, possibly followed by more work units. Now quit BOINC by quitting the Terminal application, or from within the Terminal with Ctrl+C on your keyboard.

In the Finder go to your Boinc folder, for example in Applications -> Boinc5. From there go to projects -> setiathome.berkeley.edu. You will find your stored work units and the SETI worker file, for example named setiathome_4.18_powerpc-apple-darwin. Delete that one by dragging it to the Trash and emptying it. Now put the previously downloaded seti@home-G5-a5 and app_info.xml into setiathome.berkeley.edu where the work units are. Don't mess with the other stuff in your Boinc folder.

Your projects folder should now look like this, notice the replaced SETI worker file + .xml info file where the work units are:

SETI

Start the Terminal and as described above type:

cd ..
cd ..
/Applications/Boinc5/boinc_5.2.13ppcG5gui -dir /Applications/Boinc5/
 
If Terminal looks like this you can hit Return to startup SETI.

BOINC Running

This is your standard procedure for the future, what comes now usually looks like this:

SETI Starting Up

To check if everything is running fine, go to Applications -> Utilities -> Activity Monitor. There should now be a thread called seti@home-G5-a5, or two of them for two CPUs.

Where can I see how well I actually do?

In a web browser of your choice go here to see your status, you will be required to login with your SETI account ID.

The Official SETI Website of course provides their own statistics. You can look at the best individuals, computers and teams sorted by their total or recent credit.

other sources to play with are:
    http://www.boincsynergy.com/stats
    http://www.boincsynergy.com
    http://www.boincstats.com
    http://boinc.setiatwork.com
    http://www.boincsynergy.com/stats/teams.php?project=sah

How does the Credit system work?
As a result of successful cheating attempts in the past we now have a quite complicated result calculation system. In short, at least three computers are provided with the same work unit (WU) at once. As soon as all three computers are done the three results are checked if they are equal. Then the fastest, second and third computer is distinguished, the credit granted to all three computers is then the midth of the three single credits. As a result, very slow computers will be granted slightly more credit than they deserve while very fast computers will receive slightly less credits.

The credit calculation is built around a reference computer with 1000 MIPS (million instructions per second) in the Whetstone Benchmark and 1000 MIPS in the Dhrystone Benchmark.

More information: English Wikipedia, German Wikipedia on Dhrystone, German Wikipedia on Whetstone. Detailed information here.

More options for your BOINC application

-dir and -attach_project are options to tell BOINC more exactly what to do. More options can be found here. You can get a list of possible commands with:

/Applications/Boinc5/boinc_5.2.13ppcG5gui -help .. this is actually the only command that can be used without -dir.

The less self-explanatory options are:
 
-show_projects Show the projects that your computer is attached to.
-detach_project Detach from a project; before detaching you should update your project not to lose credits.
-update_prefs Dontact a project to download new preferences and report calculated results.
-reset_project Will reset a project, giving up all results that are pending validation.
-return_results_immediately Contact server as soon as results are here.
-exit_when_idle Get, process and report work, then exit.
-run_cpu_benchmarks Run the CPU benchmarks, for example after updating your hardware.

To figure out those I could need some help smile
 
-check_all_logins For idle detection, check remote logins.
-allow_remote_gui_rpc Allow remote GUI RPC connections.
-redirectio Redirect stdout and stderr to log files.
-no_gui_rpc Don't allow GUI RPC, don't make socket.


2. Troubleshooting

General information on Troubleshooting SETI

Changes made in SETI or BOINC are slow changes in general. So if you switch to an optimized client, don't expect your results to rocket up to the world's Top list. Secondly, trouble is often not your fault at all, but happens due to server difficulties at the University of California, where the hosting is done. The team at Berkeley takes a regular outage day every Wednesday to clean-up their databases. So don't immediately start panic threads in a dozen SETI forums because you don't receive new work units. ;)

To look at your computer's status visit the Official SETI Website, go to Your Accounts -> Login and check Stay logged in on this Computer. Then go to your Accounts status page.

On the left you will see the computer's ID, followed by the Recent Average Credit (RAC) as the best measurement for your computer's current performance. Then the Total Credit (TC) to display your accumulated results. CPU type is what you get starting System Profiler in Application -> Utilities. Under Operating System Darwin 8.x.x. stands for Mac OS X.4. Last Contact is one source for Troubleshooting. The other is clicking on your computer's ID and on the results link. You will be given an overview over your computer's recent work units. Pending means that the result is waiting for validation.

SETI Units

Calculation goes fine, but I am not granted any credits

This may come from your results not being reported. I had this case once and it looked like this on the computer's status page:

SETI problem snapshot

The account page said Last Contact for that computer was January 1st, what later happened on January 1st I don't know. The screenshot was taken on January 10th.

What helped was an update. You can do this in the Terminal like this:

/Applications/Boinc5/boinc_5.2.13ppcG5gui -dir /Applications/Boinc5/ -update_prefs http://setiathome.berkeley.edu/
 

Not calculating a work unit in time

The work units sent to you come with a two week deadline to be completed. If your computer doesn't make it in time, you will get a warning in the Terminal when starting up BOINC:

SETI deadline

I posted a question in the Team MacNN forums but maybe there just isn't a way of aborting a specific work unit. When I received this warning, I wasn't granted credit for a few days but work unit calculation went on fine. A few days later the warning disappeared and I was given credit as usual. No need for updating or reseting.


3. Optimization for advanced users

Remote Control of SETI on other computers

If you have more than one computer running SETI you may want to control them from one central computer. The simplest way to do that is to enable remote login via SSH on your machines in System Preferences -> Sharing. You will need administrator privileges to do that. In the Users pane disable automatic login and make the shutdown button appear in the login window.

To gain a bit of performance you can now log out and in the Login window type >console as the user name (no password required). You should now see a black screen with a white login prompt, this is a bare Console display. Assuming that no other users are logged in in the background, the OSX window manager will be shut down. This means that no processing power is wasted driving the graphical user interface. All commands in this mode must be given via the keyboard. Note: if you want to return to the usual graphical OSX, type 'exit' or 'bye' in the Console, followed by Return. This logs you out of the Console, and returns you to the regular OSX Login screen.

Move to your terminal computer, log in to your SETI dedicated machine via SSH by:

ssh username@yourcomputer
 
Where 'yourcomputer' is an IP number like 123.45.67.891.

You will then have to type in the users password, after that you should end up in the user's home folder. As usual go to the upmost directory via

cd ..
cd ..
 
Then type the path to your SETI application, for example:

/Applications/Boinc5/boinc_5.2.13ppcG5gui -dir /Applications/Boinc5/
 
SETI should now take up calculation. In order to remotely quit SETI hit Ctrl+C on your keyboard. Then type in exit and hit Return to get back to the Mac OS X login screen.

In order to remotely shut down your computer via Terminal type:

sude shutdown -h now.
 
For more information use 'man shutdown'.

Visualization of BOINC system use

If SETI is not the only application running on your computer, you may want to see how CPU load varies with more and more applications running alongside SETI. One way to do that is to leave Activity Monitor (in Applications -> Utilities) running permantly. A more elegant way to do that is to use freeware utilities like Menu Meters that can be downloaded from websites like www.versiontracker.com or www.macupdate.com. With Menu Meters, you can easily tell that SETI runs with a low priority on your system: Mac OS X will prefer most other applications over SETI when it comes to system resources.

For example on my Dual G5 Mac the parallel use of SETI and DVD2One (a tool that shrinks the DVDs I own in order to back the up) looks like this:

SETI sharing load

Blue stands for DVD2One, green is the CPU load of SETI.

Avoid NAP mode

NAP mode is a low-power state that the processor in your Mac can fall back to when there is no work to do. While calculating work units, your Mac continuously cycles through such states in order to reduce electrical power consumtion. Switching states requires a few milliseconds, so in theory you can shorten your work unit times by turning mode cycling off. Installing the Developer Tools from your Mac OS X CD-ROM will add a Processor preference pane where you can switch off NAP mode.

For more information on NAP mode, look here (German) or here in the Apple Developer Information. Team MacNN forum user halimedia contradicted the assumtions made here with his own experiences of NAP mode not having an influence on work unit times.


4. Background of DC, BOINC and SETI

What is distributed computing (DC)?

The idea of Distributed Computing (DC) is not to let a single massive super computer calculate a task, but to use the growing power of personel computers distributed all over the world to do that. For example, you could use a multi-million-dollar super computer to predict the future development of Earth's climate. Or you could distribute those computation tasks to millions of computers worldwide to achieve the same goal. If you want to get an idea of super computers predicting the weather in a more visual style, watch Roland Emmerich's movie The Day After Tomorrow.

A network of distributed computers needs a coordinating force, usually called the master server. The main server room of the BOINC projects at University of California looks like this:

SETI server room
picture originally found here

This master server splits the stream of work into workunits (WU's) and feeds them to the participating clients. After calculation of that workunit is finished, the client sends the result to the master server, receiving some credit points to be accumulated on his account (the credit system will be covered later).

The number one difference versus super computers is that people provide their hardware for distributed computing on a voluntary base. Some interesting questions arise from that, such as who actually "owns" the results, who will benefit from ground-breaking results, or if those results can be sold.

What is BOINC?

While BOINC might not be the only application of the distributed computing arena, it is certainly the most-recognized and well-known one. While all things DC started with the SETI stand-alone project, all their projects today are handled within the BOINC system. So you clearly have to divide BOINC from the project you join, may it be SETI, Climate Prediction, Einstein or whatever.

A fine explanation of what BOINC is can be found here in the Wikipedia.


What is SETI@home BOINC?

SETI stands for the Search for Extra-Terrestrial Intelligence. The chances of finding another intelligent species are greater than zero, but less than certainty, and are quantified by the Drake Equation. We could (and do) estimate the chances of success by plugging reasonable values into the equation. Unfortunately, the correct values for many of the equation's terms are not currently known.

SETI looks through the signal data received by the Arecibo Telescope, especially on those frequencies that seem most likely for long distance communication, a 2.5 Mhz frequency band around 1420 Mhz. More info on the SETI mechanics can be found at the world's largest SETI team website, Seti.Germany -> Knowledgebase (German).

SETI originally started out as a screensaver (and it still can be used as such), turning the search for frequency patterns into visuals:

Screen Saver in action

The visual display makes it possible to look for unusual patterns, example screenshots can be found here (German, but self-explaining images). Looking at those diagrams you will understand why it is so absurd for Jodie Foster to detect extra-terrestrical signals just by listening in Contact @IMDB.com.

People could argue for hours on the value of a project like SETI. Even if there is some extra-terrestrical life out there, "they" might be so completely different from us, that our means of communications might seem absurd to them. It could also be argued, that a possible contact with extra-terrestrical lifeforms will drive mankind to the limits of intellectual capacities ...

For those less concerned about such arguments, SETI (and other BOINC projects) is just a well-designed hardware comparison/benchmark and competition tool. Those SETI participants with first their credit numbers and second the science in mind call themselves Crunchers.

More information and links are given here. Explanation of mathematical terms behind SETI here (German)

What other distributed computing projects are there?

A list of all BOINC projects can be found here. Other popular DC projects are Folding@Home (multi-language) and RC5-72 (multi-language).

Why should I participate?

As stated above, participating in distributed computing is voluntary. You will receive no "physical" reward (ok, the RC5-72 project promises some money). Despite the concerns displayed above, chances are good that the knowledge gathered by distributed computing will be used to the benefit of all mankind.

With thousands - maybe millions - of people participating in a project it is rather unlikely in my opinion that some greedy corporation could claim the key to the treatment of some wide-spreading decease. Or that it could be held a secret, that some SETI user just found something that could possibly be a "Hello".

As already mentioned, with hundreds of thousands of computers working on the same thing, BOINC is a good benchmark and comparison tool. People are gathering in communities, creating teams and creating comparison pages. It is quite interesting to see, what your hardware is able to achieve and how performance can be improved.

There have always be rumors that BOINC is not what it pretends to be. That SETI for example would be about code encrypting for American intelligence services, or maybe even military projects. While it may be correct that only a few users have examined the SETI code in detail, I doubt such an abuse of distributed computing could be kept secret. In other news, there have been more or less fun speculations about extra-terrestrials using SETI to spread computer viruses worldwide ;)

Should I convince other people to participate?

Of course you are free to encourage other people to provide their hardware for distributed computing. BOINC is not a club, a sect, or a political movement. One should not be irritated by a minority of users taking the topic too seriously. It is peoples' own decision what they use their hardware for. You might know people using their high-performance computer just for emailing and surfing, but there is no way to force them into anything.

Will distributed computing do anything bad to my computer?

Distributed computing means you are receiving data, computing them, and sending them back. In order to do that, your computer automatically connects to the internet. In respect to security, running SETI and other DC projects, you experience the same risk you always have when surfing, downloading or checking emails.

Since distributed computing needs your computer to run at full capacity over a long period of time, your computer will consume more electrical power. While this might not be significant for only a few computers running, it can be a problem for people dedicating a dozen or more computers to distributed computing.

Some people argue that distributed computing will shorten the lifespan of your processor, since running SETI (for example) makes your CPU generate more heat over a long period of time. In contradiction to that, others say that distributed computing actually stretches the lifespan of your CPU. Processors are made with metallic conductive tracings that slightly expand and shrink with changing temperatures. That means that switching your computer on and off should decrease your CPU's lifespan the most, while SETI keeps your CPU at a relatively constant temperature.


5. Some SETI nostalgia

German language readers may try to lay hands on the August 1999 issue of MacMagazin. Starting at page 48 you get a four page article on the basic idea of SETI and so on. You will also learn that a midrange Mac took 28 hours for a work unit in those days while Unix workstations needed 13 to 18 per WU.

Some really amusing showrun of Mac SETI can be found in the Steve Jobs keynote speech at Seybold Expo 1999. I extracted the relevant four minute piece and put it on my webspace. No explanations needed, just watch and smile. smile Download it here (about 4 MB).


6. Link Compendium

General Information:
    English Wikipedia on BOINC
    An overview of available BOINC projects
    Official SETI website
    Optimized BOINC and SETI for Mac
    Thread at MacNN forums on the optimized clients
    Stable Mac OS X versions of BOINC and SETI
    Beta Mac OS X versions of BOINC and SETI

Statistics:
    http://setiathome.berkeley.edu/sah_stats.php
    http://www.boincsynergy.com/stats/
    http://www.boincsynergy.com/
    http://www.boincstats.com/
    http://boinc.setiatwork.com/
    http://www.boincsynergy.com/stats/teams.php?project=sah

More Information:
    Explanations on the Credit system in the Unofficial Boinc Wiki
    Explanation of BOINC -options for Unix
    Status of your computers (login required)
    Recent Average Credit
    Total Credit
    CPU type recognition for Macs
    Apple on NAP mode in the Apple developer section
    Apfelwiki on NAP mode (German)

Nice to know:
    Photos of BOINC team at University of California
    Arecibo Telescope
    Unusal patterns in SETI output (German, but self-explaining images)
    What is actually 'crunching'?
    Fun: Aliens to use SETI to spread computer viruses worldwide (German)
    SETI mathematics at Seti.Germany (German)
    SETI nostalgia in Steve Jobs speech at Seybold Conference 1999 (4 MB)

written by TiloProbst
cleanup and editing by reader50

last updated June 3, 2006