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.
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.