BOINC Anonymous Platform Mechanism
From Unofficial BOINC Wiki
The Science Applications of the BOINC Powered Projects, and the BOINC Client Software, are native-mode programs, so different versions are required for each Platform (a 'platform' is the combination of an operating system and a processor type: e.g., Linux/IntelX86).
BOINC Powered Projects Compile program versions for common platforms (Windows/Intel, Linux/Intel, Mac OS/X. etc.), and place them on its servers. A Participant downloads the BOINC Client Software for his platform (assuming that Platform is supported by the Project). When the BOINC Client Software requests work from the Project's Scheduling Server, the BOINC Client Software tells the Server its platform, and the Server instructs it to download the appropriate executables.
This addresses the needs of most BOINC Participants, but it's inadequate if:
- your computers have platforms not supported by the Project;
- for security reasons, you want to only run executables you have compiled yourself;
- you want to optimize applications for particular architectures.
To handle these cases, the BOINC System lets you make or obtain the client software yourself rather than downloading it.
First, get the BOINC Client Software for your computer. You can do this in either of two ways:
- Refer to the index page "BOINC Development" for instructions on how to download and compile the BOINC Client Software for your computer(s).
- If available, download BOINC executables for your computer from a Third Party Source.
Second, get the project's application for your computer. Again, you can either compile it yourself or download the executable from a third party. The details vary between projects, and not all projects make their source code available. As an example, see the Porting and optimizing SETI@home Instructions for SETI@Home.
Finally:
- Run the BOINC Daemon and attach to the Project. This will create a 'project directory' (whose name is the Project URL) in the BOINC Directory. Exit the BOINC Client Software (File Menu "Exit" option).
- Create a file app_info.xml in the Project Directory. This file lists the applications you have compiled or downloaded. It has the following form:
<app_info>
<app>
<name>setiathome</name>
</app>
<file_info>
<name>setiathome_4.07_windows_intelx86.exe</name>
<executable/>
</file_info>
<app_version>
<app_name>setiathome</app_name>
<version_num>407</version_num>
<file_ref>
<file_name>setiathome_4.07_windows_intelx86.exe</file_name>
<main_program/>
</file_ref>
</app_version>
</app_info>
- where 407 is the application's version number.
- Run the BOINC Client Software again. When it requests work from the Scheduling Server, it will report its platform as 'anonymous', and provides a list of the applications it has. The server then sends whatever work is available for those applications.
This model is possible only with those Projects that make their application Source Code available.
You may want to check out the following email lists (e.g. the port may already exist):
- boinc_opt@ssl.berkeley.edu: discussion of porting and optimization of BOINC itself and the Science Applications.
- boinc_dev@ssl.berkeley.edu: discussion of development and porting of BOINC software.
- boinc_cvs@ssl.berkeley.edu: CVS checkins to the BOINC Source Code are reported here.
[edit] Also See
- Application Information File (app_info.xml)
[edit] UCB Source
[edit] Copyright ©
- 2005 University of California
- 2005 Paul D. Buck
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.

