Eric Myers' BOINC Developers' Notes
From Unofficial BOINC Wiki
Contents |
[edit] General
The BOINC System is complicated, especially when you are first introduced to it. The notes and links below collect together much (but not all) of what I've learned about the BOINC System from setting up a BOINC Project and creating several BOINC Applications.
A quick overview of terminology could be very helpful. The BOINC "client" is the software you download from the BOINC main site and install and run on your own computer. The "client" in turn will download a BOINC "Applications", which are programs which perform scientific calculations (and optionally display screensaver graphics). A BOINC "project" is a server which provides support to BOINC clients.
If you just want to run BOINC on your home computer and contribute your spare computer time to one or more projects, then read about the BOINC Client Software.
If you want to set up your own BOINC project then start by reading about BOINC Project Managment, and then read about how to create and manage BOINC applications.
Other useful sources of information about creating BOINC Powered Projects or Science Applications are the BOINC site on-line documentation and the remainder of the Unofficial BOINC Wiki.
[edit] BOINC Clients
- Unix start/stop script for the BOINC Daemon on Linux (Red Hat/Fedora/Mandrake/SuSe). If someone gets this to work on Debian please send me the diffs and I'll update it.
- Running BOINC command line client on a Mac [Likely out of date by now] {Paul: Known out of date!}
[edit] Building the BOINC Client Software and Science Applications
- Building BOINC applications on Windows
- Building BOINC and BOINC Applications on Linux
- Building BOINC and BOINC applications on MacOS X
(These three pages may someday be merged into one page, but for now they each have some duplication, which is not necessarily a bad thing.)
[edit] BOINC Applications
The easiest way to learn to write your own BOINC application is to work your way through the examples listed below. Two of the examples come with the BOINC distribution, concat and upper_case. I have written the others as I have myself learned more and more about creating BOINC applications. I hope the notes are useful, at least for getting someone started.
- Hello, World -- the simplest BOINC program
- concat - concatenates two or more input files into one output file (from BOINC)
- Yello, World -- the simplest graphics program for BOINC
- uppercase - convert an input file to uppercase (from BOINC)
- cube - simplest non-trivial 3D graphics application for BOINC
- The Jack LaLanne program - an API Exerciser
- The 'scroll' application for Pirates@Home
- The "Sicilian Roulette" application for BOINC
- Sextant - the Einstein@Home screensaver graphics thread
- Starboard! - xscreensaver GL graphics suite
Source Archive: a collection of at least the last few versions of the source code and build files for these applications is available here.
[edit] BOINC Graphics
BOINC graphics are programmed in OpenGL, and use GLUT (the GL Utilities Toolkit), at least on on Linux and Mac. You can quickly test your graphics without BOINC using the 'boinclet', an interface between the BOINC graphics API and GLUT. You can also test your graphics with the science code by running the application in "standalone" mode. Just be sure that the input and output files already exist -- output files are not created in standalone mode.
[edit] BOINC
- The BOINC Graphics API
- The "boinclet" - a BOINC graphics API test stand boinclet.C, boinclet.h
- Notes on developing a Unix Screensaver for BOINC
[edit] OpenGL Graphics
- The Red Book: OpenGL Programming Guide (Fourth Edition) - The Official Guide to Learning OpenGL, version 1.4, by Dave Shreiner, Mason Woo, Jackie Neider, and Tom Davis (Addison Wesley, 2004).
- OpenGL Code Samples from opengl.org
- Insights on OpenGL for MacOS X.
- Porting to OpenGL for Windows (from MSDN)
- OpenGL FAQ 5: Microsoft Windows Specifics
[edit] GLUT (GL Utility Toolkit)
(There is very little GLUT in the windows version of BOINC (just some font references, as far as I can tell), and I think that is the way to go on Unix as well. But we are not there yet, and GLUT is useful for development, testing, and learning graphics)
- GLUT API (in HTML form)
- freeglut from sourceforge
- GLUT 3.7 source code for Windows (from Nate Robins)
- Apple GLUT basics for MacOS X.
[edit] JPEG Library
There are various versions of the JPEG code or at least headers around. These are the canonical sources, and how I built from them on Windows.
- Source code tarball for JPEG libary for Unix from the Independent JPEG Group. Go to http://www.ijg.org/files and get the file jpegsrc.v6b.tar.gz
- Source code zip file for JPEG library for Windows: ftp://ftp.simtel.net/pub/simtelnet/msdos/graphics/jpegsr6.zip
- "Solution" and "project" files to build the JPEG library version 6b using MS Visual C++ 7: jpeg-6b.sln and jpeg-6b.vcproj
- Source code and documentation for freeglut from SourceForge. I've used freeglut with good success on Windows.
[edit] BOINC Project Management
- BOINC Project Management -- How you can install, customize, upgrade, and manage a BOINC project. (Still a work in progress...)
- Adding and Updating BOINC Applications
- Sample BOINC web server configuration UCB just put up a new one for MySQL
- Sample BOINC configuration file config.xml (right-click to download, it's not gonna look good in a browser)
- Creating an Apple Disk Image to Distribute BOINC
- Customized download page download.php (packed as a tar file) which can either provide client download links from the project or from BOINC.
[edit] BOINC developers links (from the BOINC site)
- BOINC Development (Wiki Link comparable to the UCB site - also see UCB BOINC Site to Wiki Cross-Reference)
- Getting and building BOINC software, includes required version numbers for all components. (link obsolete and in WIki is BOINC Development)
- Building BOINC on Unix, includes all arguments to the "configure" XML file.
- BoincZilla - The BOINC Bug Database
[edit] TO DO
- OpenGL cube demo -- simple nontrivial BOINC graphics program
- document Roger, the graphics program for Talk Like a Pirate Day
RSS Feeds

