United BOINC

 
  • Increase font size
  • Default font size
  • Decrease font size
Home BOINC information Make your own client software

Make your own client software

E-mail Print PDF
AddThis Social Bookmark Button
Anonymous platform

BOINC applications and the BOINC core client 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/Intel).

The BOINC core client is available for common platforms (Windows/Intel, Linux/Intel, Mac OS/X. etc.) from this web site. BOINC-based projects compile program versions for some or all of these platforms and place them on their servers. Typically, you download the BOINC core client version for your platform. When the core client requests work from the project's scheduling server, the client tells the server its platform, and the server instructs it to download the appropriate program version.

This addresses the needs of most BOINC participants, but it's inadequate if:

  • your computers have platforms not supported by BOINC or 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, BOINC lets you make the client software yourself, or obtain it from a third party, rather than downloading it from its 'official' source. This applies to both the core client and to project-specific applications.

BOINC client software

You can get the BOINC client software in any of three ways:

Project-specific applications

Not all BOINC projects make their source code available. The following applies only to projects that make their source code available. As an example, see the instructions for SETI@home here.

  • Either get the application source code and compile it yourself, or download an executable from a third party.
  • Run the core client and attach to the project. This will create a 'project directory' (whose name is the project URL) in the BOINC directory. Exit the client.
  • Create a file app_info.xml in the project directory. This file describes the applications you have compiled or downloaded. Its format is described below.
  • Run the core client 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.
  • The Macintosh uses Account-based sandboxing. When you add files inside the Mac's BOINC Data directory, you must set ownership and permissions properly. If you are using the BOINC Manager, simply run the BOINC Installer again. If you are running the Unix command-line version, run the Mac_SA_Secure.sh shell script; it is bundled with the command-line BOINC Client and also available at Mac_SA_Secure.sh.

Note: if you decide to switch back to using the project-supplied executables, you must delete the app_info.xml file, then reset the project.

You may want to check out the following email lists (e.g. the port may already exist):

  • This e-mail address is being protected from spambots, you need JavaScript enabled to view it here: discussion of porting and optimization of BOINC applications.
  • This e-mail address is being protected from spambots, you need JavaScript enabled to view it here: discussion of development and porting of BOINC software.
  • This e-mail address is being protected from spambots, you need JavaScript enabled to view it here: checkins to the BOINC source are reported here.

The format of app_info.xml

The file app_info.xml is an XML description the applications you have compiled or downloaded. It has elements describing the files that make up the application, and describing the attributes of the application. The format is as follows:

<app_info> 
<app>
<name>setiathome_enhanced</name>
</app>
<file_info>
<name>setiathome_6.6_windows_intelx86.exe</name>
<executable/>
</file_info>
<file_info>
<name>setiathome_graphics_6.6_windows_intelx86.exe</name>
<executable/>
</file_info>
<app_version>
<app_name>setiathome_enhanced</app_name>
<version_num>660</version_num>
<api_version>6.1.0</api_version>
[
<coproc>
<type>CUDA</type>
<count>1</count>
</coproc>
]
[ <flops>X</flops> ]
[ <avg_ncpus>X</avg_ncpus> ]
[ <max_ncpus>X</max_ncpus> ]
[ <cmdline>args</cmdline> ]
<file_ref>
<file_name>setiathome_6.6_windows_intelx86.exe</file_name>
<main_program/>
</file_ref>
<file_ref>
<file_name>setiathome_graphics_6.6_windows_intelx86.exe</file_name>
<open_name>graphics_app</open_name>
</file_ref>
</app_version>
</app_info>

The elements include:

<version_num>: the application's version number.

<api_version>: the BOINC version number of the API the app uses.

<coproc>: describes a coprocessor requirement.

<flops>: the expected FLOPS of the application (for multi-thread and coprocessor apps).

<avg_ncpus>: the average number of CPUs used by the app.

<max_ncpus>: the max number of CPUs used by the app.

Generally this should match the corresponding elements in a scheduler reply message (sched_reply_URL.xml), except that the <platform> and <plan_class> elements should be removed.

 

Who's Online Who's Online

We have 403 guests online

Login Form Login form

Login with an OpenID & Login with Gmail - Allowed!Allowed login methods

Statistics Statistics

Members : 142
Content : 97
Web Links : 10
Content View Hits : 595333

Check out these cool BOINC videos!

Einstein@home - Gravity is Making WavesEinstein@home - Gravity is Making Waves

 

SETI@home: Listening to the Universe

SETI@home - Listening to the Universe

 

LHC@home - CERN & the Large Hadron Collider (LHC)

LHC@home - CERN & the Large Hadron Collider (LHC) 

 

Poll Poll 1

Is BOINC manager "User friendly"?
 

Poll Poll 2

How many BOINC projects are you running?
 

Poll Poll 3

Have you ever used an Account Manager?