Results 1 to 3 of 3

Thread: Boinc Faq

  1. #1
    Joined
    Jul 2001
    Location
    UK
    Age
    51
    Posts
    20,229

    Boinc Faq

    Introduction

    BOINC (Berkeley Open Infrastructure for Network Computing) is the new distributed computing infrastructure for SETI@home (Search for Extra Terrestrial Intelligence).

    The current version of SETI@home is winding down and the next version is based on BOINC. As BOINC is an open infrastructure, unlike SETI@home Classic, several other projects besides SETI@home are also using BOINC.


    Sign up for BOINC and download the software

    You can sign up to participate in BOINC and download the software here:

    http://setiweb.ssl.berkeley.edu/sah_participate.php

    There are two ways to sign up:

    1. If you had an account in the original SETI@home Classic project as of 14th May 2004

    The folks at Berkeley took a snapshot of all the original SETI@home accounts on 14th May 2004. If you had an account in the original SETI@home Classic project as of 14th May 2004 then your account information, including profile and team information, has been transfered to the BOINC project. You now need to activate that account.

    You will be asked to enter the e-mail address of your original SETI@home account. Your new 32 character BOINC account ID will then be e-mailed to that address and you are required to enter it on the activation web page in order to activate your BOINC account. (This is not the same as your original SETI@home password ID)

    Note: If you no longer have access to your e-mail account used to set up your original SETI@home account then you'll need to set up a new BOINC account here

    If you have successfully activated your account, you will automatically be a member of whatever team your SETI classic account was a member of. Assuming you were/are a member of the Athlonmb.com SETI Team the there is no need to take any action as you will also be part of the BOINC team (although you may not show up on the official team stats until your account starts receiving credits which can take up to 7 days from when you start crunching).

    You will then be taken through the settings page (the defaults should be OK for most users) and onto the download page. Download and run the installer for your operating system (Windows, Mac OS/X, Linux or Solaris). When BOINC first runs it will ask for a project URL and an account key. Enter the following to run the SETI@home project (you can add other projects later):

    Project URL: http://setiathome.berkeley.edu
    Account Key: this is the 32 character account ID that was just e-mailed to you (keep this somewhere safe).

    Boinc will now try to connect to the project entered. Assuming you chose the Seti@Home project URL, it will first automatically download the latest Seti@Home client and launch it. It will then start to download work units and start processing them.

    2. If you wish to set up a new BOINC account

    The procedure should be similar to (1) except that you will provide a new e-mail address for your new account.

    You can set up a new BOINC account here that will automatically be a member of the Athlonmb.com team.


    Using an http proxy

    Teef has suggested the following:

    Quote Originally Posted by teef
    Tried again with the boinc client today, and you may want to add to the boinc faq that to enable http proxies, apart from setting the host and port, you also need to add <use_http_proxy/> to the config to actually use them.

    So the relevant section of the xml file is:

    <proxy_info>
    <use_http_proxy/>
    <http_server_name>proxy</http_server_name>
    <http_server_port>8080</http_server_port>
    </proxy_info>

    How to cache work units

    Unlike classic Seti, BOINC has the facility to cache Seti work units built in so there is no need for additional add-on utilities.

    Go to the BOINC home page and click on Your Account, and view Preferences General and edit the value for Connect to network about every X days.

    This may be set to between 0.1 and 10 days. This setting controls how often BOINC will connect to the servers to request more work and thus how many days work will be cached on your machine. Setting a lower value will ensure your machine returns results more quickly and thus speeds up the process of getting credits whereas setting a higher value will cache more days work on your machine. I would suggest a minimum setting of 1-3 days.


    Benchmarks and Credit

    BOINC uses a new credit system rather than simply counting the number of results returned. BOINC's new unit of credit is called the Cobblestone, named after Jeff Cobb of the SETI@Home Project. The amount of credit you will get for each processed work unit depends on a number of factors. The BOINC application uses two benchmarks, Whetstone and Dhrystone, to measure the floating point and integer speed of your computer. These benchmark scores are then used in conjunction with the time taken to process a work unit to calculate how much credit your computer will claim for that work unit. But you are not simply granted the credit you claim. When you return the result to the BOINC project servers together with your claimed credit, the results are then validated against at least two other results returned by other users. The highest and lowest claimed credit values are discarded and the average (mean) of the remaining values is awarded to all users. For three successful results, this is usually just the middle value of the three claimed credits.

    Whetstone

    The Whetstone benchmark tests double precision floating point operations. It performs 8 groups of tests multiple times and gives a score based on the number of operations performed divided by the time taken. The tests include simple addition, subtraction, multiplication and division of floating point numbers together with trigonometric functions such as sine, cosine, tangent and exponents.

    Dhrystone

    The Dhrystone Benchmark tests repeated integer operations together with several operating system file handling operations.

    How Claimed Credit is Calculated

    Claimed credit is calculated as a function of the Whetstone and Dhrystone benchmarks calculated by the BOINC application multiplied by the time taken in seconds to process the work unit using the following formula:

    Code:
    claimed credit = ([whetstone]+[dhrystone])/1000 * 100 / (2 * secs_per_day) * wu_cpu_time
    which can be simplified to the following formula:

    Code:
    claimed credit = ([whetstone]+[dhrystone]) * wu_cpu_time / 1728000
    Estimated CPU Time

    BOINC only uses the Whetstone benchmark to estimate CPU time needed to process a work unit. Each work unit downloaded to your machine includes an estimated number of floating point operations. BOINC divides this by the Whetstone benchmark score to estimate completion time. SETI currently estimates 27.9 trillion (american) floating point operations, however the actual number of floating point operations varies greatly from one work unit to the next which is why they don't all take the same amount of time. In addition, this estimation is used to calculate how muck work to download according to your cache settings.

    Code:
    estimated time (Sec) = 27,900,000/Whetstone
    Why Estimated CPU Time is Not Very Accurate

    The time estimated by BOINC for a work unit to process on your computer is often not very accurate and there are a number of reasons for this. The estimated time is based on two other estimates, the number of floating point operations required to process the work unit and the Whetstone benchmark as an indicator of floating point math performance of your computer. Firstly, SETI estimates the number of floating point operations for it's work units, but this estimation is the same for each unit where in reality this is not the case. This is the reason some units process significantly quicker than others. Secondly, BOINC uses the Whetstone benchmark to estimate floating point math performance of your computer. The Whetstone benchmark tests double precision maths and spends the majority of it's time performing trigonometric functions whereas SETI performs almost all single precision maths and typically only spends about 20% of it's time performing trigonometric functions. Thirdly, none of these estimates or benchmarks take into account factors such as memory bandwidth or processor cache size which SETI is hugely dependant on and can make a significant difference to raw performance.

    / Updated 11th March, added http proxy info from teef
    Last edited by Ned Slider; 03-11-2005 at 08:06 AM.

  2. #2
    Joined
    Jul 2001
    Location
    UK
    Age
    51
    Posts
    20,229

    Useful Links

    Last edited by Ned Slider; 07-06-2005 at 03:56 AM.

  3. #3
    Joined
    Jul 2001
    Location
    UK
    Age
    51
    Posts
    20,229

    BOINC Linux Guide

    Introduction - BOINC on Linux

    Just as with SETI@Home classic, there is a version of BOINC for Linux. As usual with Linux, this is a command line interface based client. This guide will help you download, install and run the BOINC client for Linux. In addition, we will show you how to compile the software from the source code for speed improvements on your AMD hardware.


    Download and install the Linux client for BOINC

    You can download the latest Linux client for BOINC here:

    http://setiweb.ssl.berkeley.edu/download.php

    We will assume you already have a BOINC account set up. First create a directory for your BOINC software (I run it from /home/ned/boinc). Place the downloaded gzipped file in the directory you've created. Open a shell window and cd to that directory, extract the BOINC software using gzip, make the file executable and run the BOINC client:


    Code:
    cd /home/ned/boinc
    gzip -d boinc_4.09_i686-pc-linux-gnu.gz
    chmod 774 boinc_4.09_i686-pc-linux-gnu
    ./boinc_4.09_i686-pc-linux-gnu
    Then enter the project URL (http://setiathome.berkeley.edu) and your 32 character account ID as requested. The BOINC software will automatically benchmark your system, download the latest SETI@Home client for your system, and start downloading and processing work. Congratulations, you are now running BOINC on Linux.

    Please see the section above in the Windows BOINC FAQ for details on caching work units.


    Benchmarks and speed of BOINC on Linux

    The core BOINC client has a benchmark system built into it based on double precision MIPS (Whetstone) and Integer MIPS (Dhrystone). Although the core BOINC client doesn't actually do any of the scientific calculations, the SETI@Home client does that, this benchmark is used to calculate the credit requested for completing a work unit based on the product of the benchmark result and the time taken to complete the work unit. Thus, to get the maximum possible credit for a work unit it is important for this benchmark score to be as high as possible as it's directly proportional to the credit requested.

    However, there is a problem here. The Linux BOINC benchmark scores are approximately 50% lower than the same scores for the Windows BOINC client on identical hardware so without optimisation your Linux box will request about half the credit for a work unit as it would if running Windows. To illustrate this point, here are some benchmark scores from my dual boot WinXP/Linux laptop:

    Sony Vaio laptop - AthlonXP 1400+ (1.2GHz, 100MHz fsb), 256MB RAM (133 fsb), Dual boot: WindowsXP SP1/Fedora Linux Core 1

    Windows XP:
    Whetstone - 1121
    Dhrystone - 2586

    Native Linux 4.09 (percentage performance):
    Whetstone - 589 (52.5%)
    Dhrystone - 1335 (43.9%)

    However, there is a solution so read on.


    Compiling BOINC on Linux with optimisations for AMD hardware

    One of the main differences between SETI@Home classic and BOINC is that the BOINC project is open source meaning that the source code is freely available. This means we can download and compile the source code with optimisations specifically for our own individual hardware.

    The reason the Windows BOINC client returns much faster benchmark results than the Linux client is due to the different compilers used and their relative efficiency (see here for a more detailed discussion on this).

    The first thing we need to do is download the source code for BOINC from here. Nightly builds are available in 4 flavours and we need a recent boinc_public-cvs.tar.gz version. The non _public versions are test versions and the zip files are Windows sources. Once downloaded, place the tar.gz file in /usr/src and extract:


    Code:
    cd /usr/src
    tar xvzf boinc_public-cvs-2004-09-30.tar.gz
    Now change to the source directory (boinc_public) and build the BOINC client:


    Code:
    cd boinc_public
    export CFLAGS="-march=athlon-xp -O3 -fomit-frame-pointer -funroll-loops -fforce-addr -ffast-math -ftracer"
    export CXXFLAGS=$CFLAGS
    ./configure --disable-server
    make clean
    make
    The two export commands set the optimisations to be used. -march=athlon-xp is specific for AthlonXP processors and -O3 uses level 3 optimisations (the highest available). For a detailed analysis of the optimisations used and their effect, see here. The configure command runs a configuration script and the --disable-server switch tells it we only want to compile the client, not the server software. The make command actually does the compiling.

    Note: If you want to optimise for other processors, try -march=x86-64 for 64-bit processors, or -march=i686 (or -march=pentium3 or -march=pentium4) for 32-bit Intel processors. Some experimantation may be useful here as some unexpected results have been noted. Some good information on different gcc compiler flags can be found here or in the gcc online manual available here.

    The configure and final make commands may take a few minutes and lots of output will scroll to the screen, but if all went well you will now have a newly compiled copy of the BOINC client (boinc_4.11_i686-pc-linux.gnu) located in the /usr/src/boinc_public/client directory. Simply copy this file to your boinc directory replacing the original BOINC client. At this point it might be a good idea to rerun the benchmarks using the '-run_cpu_benchmarks' switch.

    Lets have a look at the difference our efforts have made (data for an AthlonXP 2100+ and DDR2100 memory at stock speeds):

    Dwonloaded BOINC client:
    Whetstone - 896
    Dhrystone - 2155

    Optimised BOINC client (percentage performance):
    Whetstone - 1656 (185%)
    Dhrystone - 2640 (122%)

    That's a pretty large improvement, particularly on the Whetstone benchmark, for less than 30 minutes work.

    To discuss this guide and for a more detailed discussion of the optimisations used, please see this thread.

    Download Optimised Clients:

    Links to the latest optimised BOINC clients can be found here

    Details on how to compile the SETI@Home client can be found here

    Edit: boinc-4.13 optimised client added 14/10/2004
    Last edited by Ned Slider; 01-25-2005 at 01:07 PM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •