Berkeley Open Infrastructure for Network Computing
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.
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.
- Unlimited network size
- Unlimited network size growth
- Low price per node
- No policy and law restrictions
- 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)
- 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
- Participator registers for the project using simple registration form provided by the project internet site or BOINC client demon
- Participator finishes registration routine by submitting his PC usage constraints
- Everything else is automated
Client Side Screen Shots
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
Important functions and methods
boinc_resolve_filename(“out”, resolved_name, sizeof(resolved_name))