RT-BOINC stands for a Real-Time BOINC
It was designed for managing highly-interactive, short-term, and massively-parallel
real-time applications. We designed and implemented RT-BOINC on top of BOINC server source codes.
Contact information: Sangho Yi and Derrick Kondo
Support This Project
** Note: We are looking for
sponsors on this project.



Why did we need to modify PHP codes?
The original BOINC uses both PHP and C codes to retrieve the main MySQL database, because the main interface between BOINC server and hosts is CGI-web. When a user wants to create account, it goes to create_account.php, and the PHP codes retrieve if the account is already existing in MySQL database (select * from user where ... SQL). Then, the PHP codes make a new account on the database.

However, in RT-BOINC, we don't use the MySQL database, but use the shared memory segment IPC. For this reason, we modified several PHP codes which are essential for workunit distribution and reporting.

Then, how to share the 'shared memory segment' between server daemon processes and PHP codes?
Using exec() and system() style 'command execution' function in PHP codes:
We modified PHP codes to execute the native programs written in C language.
- in html/user/create_account.php, and html/user/lookup_account.php
- in some other PHP code files also

Implementing native programs for retrieving the 'shared memory segment':
We implemented new native program codes in C language for each PHP action. By doing this, RT-BOINC can support 'on-the-web' queries without problems.
- in sched/php_create_account.cpp, sched/php_lookup_account.cpp

Notes for developers:
We still have to modify the non-essential PHP codes. It's not a big deal, but a time-consuming work.

Related links
BOINC
Unofficial BOINC Wiki
BOINC Statistics
World Community Grid

Last modified: Wednesday, 10 Feb. 2010.