BOINC.BOINC API (Short Introduction)

BOINC Logo
BOINC
Berkeley Open Infrastructure for Network Computing

http://boinc.berkeley.edu

What is it?

BOINC is a system of applications. It helps scientists to create public-resource computing projects. It supports complicated applications (with high storage and network requirements). PC owners can participate and donate their computing power to many projects simultaneously. PC owners can subscribe constraints on resources they donate. My aim is to show you how easy is to use the benefits of this system.

GRID Computing vs Public-Resource Computing

It is two different grid technologies. The first one is widely used in organization and educational networks. It requires support and expensive IT stuff to look after the system. The pc’s should stay always connected and sub networks fully functional. The second one is used to contribute computing power from public networks and home users connected to those networks. It requires less support than difficult strict and complicated grid computing middleware.

PC Owners. Pie Chart.

It is clear that the most significant part of world computing power belongs to home computer users. I mean not only desktop personal computers, but also handgelds processor driven mobile phones and so on and so on. And i think it is rational to contribute their computing power.

BOINC Advantages

  • Unlimited network size
  • Unlimited network size growth
  • Low price per node
  • No policy and law restrictions

BOINC Challenges

  • Unstable network
  • Unstable clients
  • High server load
  • Client security
  • Server security
  • Incomplete middleware and interface

Participation(How the PC Owner Becomes a Computing Power Donator)

  1. Computing power donator – project participator must download client application – BOINC client demon. This step should be done only for the first project. All future projects, participator will take part in, uses the same demon
  2. Participator registers for the project using simple registration form provided by the project internet site or BOINC client demon
  3. Participator finishes registration routine by submitting his PC usage constraints
  4. Everything else is automated

Client Side Screen Shots

Main window
Main Window
Enter Project URL
Enter project URL
Enter Login Credentals
Enter Login Credentials

BOINC Architecture

BOINC Architecture

BOINC Architecture Scheme

Server side components:

MySQL DB – stores all project related records. Information about applications, work units, results, Users- computing power donators, forum posts, news posts, statistics.

Sheduler – Application whitch periodically runs BOINC server side demons sutch as work generator, feeder, transitioner, validator, assimilator, file deletor, etc.

Web Site – Public side interface is used to collect data from project participators and to provide project related information. Administrator side interface is used to watch how project runs, to place news posts, to take maintenance on project related issues.

Data Servers – HTTP Servers used to download and upload project related files – work units, results, application versions.

Work generator – Demon witch takes care about work units. It cuts the main work into small work units. This server side demon is that one whitch is project dependet and mus be developed by the project owner.

Client side components:

BOINC Client demon – processes main computations based on input file and command line arguments provided by the work generator.

Project / Platforms / Applications / Versions

Projects – is an entity, witch describes scientific problem, witch is being solved using public resources and BOINC infrastructure.

Project can support different client platforms (produce work units for clients running on different platforms)

Project can use different applications to handle different computations needed by the project

Application should have version for some platform, if project creator wants it to be run on that platform clients

Applications can by modified during the project lifetime. To manage this BOINC server uses incremental application versioning together with versioning for platforms.

Work units and results

Server side work generator generates work units and result templates for those work units

Client side BOINC demon handles those work units and uses their data as input data for computations

Client side BOINC demon handles result templates generated by the server and fills those templates with computed data

BOINC API

Libraries

[code lang=”cpp”]#include “boinc_win.h”
#include “boinc_api.h”
#include “filesys.h”
#include “util.h”
#include “backend_lib.h”[/code]

Important functions and methods

[code lang=”cpp”]boinc_init()
boinc_resolve_filename(“out”, resolved_name, sizeof(resolved_name))
boinc_fopen(resolved_name, flag);
boinc_finish(0)[/code]

Sample client application – “Hello, BOINC World!” Sample application – BOINC Server component – work generator demon

One thought on “BOINC.BOINC API (Short Introduction)

  1. Lazar Starcevic

    Postovana Gospodo!
    Posto vec vise godina pokusavam da dam svoj skroman doprinos istrazivackim naporima, pogotovu u okviru programa SETI, to bih Vas molio da nama Srbima koji ne govore Engleski jezik, omogucite da bolje razumemo to sto pokusavamo da \radimo\. Siguran sam da bi broj onih koji su ukljuceni u bilo koji od Vasih istrazivackih projekata a pogotovu u projekat SETI bio multipliciran ako bi bolje razumeli ono u cemu pokusavaju da daju svoj skroman doprinos. Zato, molim Vas, napravite prevod projekata na jedan od jezika koji bolje razumemo(Srpski, Hrvatski, Bosanski) i siguran sam da ce korist biti obostrana!
    U napred zahvalan Vas visegodisnji postovalac Lazar Starcevic

Leave a Reply