wiki:QuickStart
Last modified 3 weeks ago Last modified on 07/30/14 09:32:27

Quick start

Want to see BOINC in action as fast as possible?

  • Run the BOINC virtual server using VirtualBox. Set up its IP address, say a.b.c.d.
  • Logged into the server as 'boincadm', create a test project:
    $ cd ~/boinc/tools
    $ ./make_project --url_base http://a.b.c.d --test_app test
      (answer "y" to all questions)
    $ cd ~/projects/test
    $ su -c 'cat test.httpd.conf >> /etc/apache2/httpd.conf'
      (you'll be prompted for the root password, which is "rootpw")
    $ su -c 'apache2ctl -k restart'
    $ crontab test.cronjob
    $ ./bin/xadd
    $ ./bin/update_versions
      (answer "y" to all questions; ignore warnings)
    $ ./bin/start
    
  • Download, install, and run the BOINC client on a Linux computer.
  • Attach the client to your new project:
    • If you're using the BOINC Manager, enter the URL http://a.b.c.d/test/, and enter an email and password.
    • Otherwise use the command-line tool to create an account and attach:
      $ boinccmd --create_account http://a.b.c.d/test/ email-addr password account-name
      account key: XXX
      $ boinccmd --project_attach http://a.b.c.d/test/ XXX
      

Your BOINC client will immediately begin fetching and executing jobs from the server (the jobs are for a sample application that uses 1 minute of CPU time and processes a 4 MB file). You can repeat this on as many computers as you want. Voila! You're doing distributed computing. If you run into problems (like no work send to clients) please read Trouble-shooting server components.

In a web browser, visit http://a.b.c.d/test. You will see your project's web site. You can log in (using the same email/password) and access your volunteer account information.

Running your own application

Suppose that instead of the sample application, you want to run your own. Logged in to the virtual server, type

cd ~/projects/test
html/ops/single_job_setup.php ~/boinc/samples

and follow the resulting instructions. This configures your project to handle "single job" submissions. Then compile a program in your home directory. Say the program is a.out and that it writes to stdout. Then, in your home directory, type

boinc/tools/boinc_submit --stdout foo a.out

When this completes, foo will contain the output of a.out, run on one of the BOINC client hosts.

What's next?

This demonstrates how you can use BOINC to run programs remotely, but it doesn't show the complete picture. In particular:

  • This demo uses only Linux clients. BOINC lets you use heterogeneous pools of Windows, Mac OS X, Linux, and other clients.
  • This demo involves manual submission of single jobs. BOINC lets you create automated systems that create and handle millions of jobs per day.
  • In this demo, we trust the client to return correct results. BOINC lets you set things up so that results from faulty or malicious clients are automatically detected and rejected.

... and many, many other things. Keep reading.