Trabalho de Sistemas Paralelos e Distribuidos apresentado em 17 de Junho de 2009: "Volunteer Computing With Boinc" por Diamantino Cruz e Ricardo Madeira
2. BOINC (Berkeley Open Infrastructure for Network Computing) What is BOINC? BOINC is middleware system created to simplify the implementation of volunteer computing projects. What is volunteer computing? Volunteer computing is an arrangement in which people (volunteers) provide internet-connected computers, to be used as a source of computing power and storage. Why use volunteer computing? Volunteer computing uses computational resources that would otherwise be unused, to solve computationally intensive projects, for lower costs them other available solutions.
3. Task Server Components Each BOINC-based projects operates a server consisting of several components: Web interfaces for account and team management, message boards, and other features. A task server that creates tasks dispatches them to clients, and processes returned tasks. A data server that downloads input files and executables, and that uploads output files. The clients periodically communicates with the task server to report completed work and to get new work.
4. Task Server Components What are the functions of the programs? The work generatorprepares new jobs to be sent and their input files. The scheduler deals requests from the clients. The requests include a description of the host, a list of completed instances, and a request for additional work. The reply includes a list of instances and their corresponding jobs. The scheduler also maintains the records for the user account and team, the host, and the various jobs and instances The feederfacilitates the schedulerâs database access, maintaining a shared-memory segment containing static database tables, and a fixed-size cache of unsent instance/job pairs. The transitionerexamines jobs for which a state change has occurred if needed generates new instances, flag the job as having a permanent error, or trigger validation or assimilation of the job.
5. Task Server Components The validatorcompares the instances of a job and selects a canonical instance representing the correct output. It determines the credit granted to users and hosts that return the correct output, and updates those database records. The assimilatorhandles job that are âcompletedâ (has an canonical instance or a permanent error has occurred). Handling a successfully completed job might involve writing outputs to an application database or archiving the output files. The file deleterdeletes input and output files that are no longer needed. The database purgerremoves jobs and instance database entries that are no longer needed, first writing them to XML log files. The programs communicate using the BOINC database.
6. Persistent redundant computing Because incorrect output may result from a hardware and software problems, an incorrect modification to the application, or a intentional attack by the volunteer, mechanisms to ensure that outputs are correct (validation)and that tasks eventually get done (retry). BOINC provides a mechanism called persistent redundant computing that accomplishes both goals. This mechanism involves performing each task independently on various computers, comparing the outputs, looking for a âquorumâ of equivalent outputs, and generating new instances as needed to reach a quorum.
7. How The Magic is done Client Side Core Client Client has 2 âmodesâ Manager Screensaver
9. How The Magic is done Client Side The core client communicates with applications by shared-memory message passing
10. Failure Protection BOINC uses heartbeat messages BOINC API finalization routine writes a âfinished fileâ BOINC supplies a set of printf()-replacement functions that buffer output in memory, and flush these buffers during checkpoint All information about a task (exit code, signal number, standard error output, volunteer host platform) is stored in a relational database on the server
11. Conclusion, Death, Taxes and BOINC What is the internet for the average Portuguese user google.pt hi5.com youtube.com live.com google.com Additional info 11 travian.pt 13 facebook.com 14 record.pt 19 abola.pt Source http://www.alexa.com/topsites/countries/PT
12. Conclusion, Why use Boinc Suppose you need a lot of computing power - say, 100 TeraFLOPS for 1 year. Here are some ways you can get it: Use Amazon's Elastic Computing Cloud $175 Million: Based on $0.10 per node/hour. Build a cluster $12.4 Million: This includes power and air-conditioning infrastructure, network hardware, computing hardware, storage, electricity, and sysadmin personnel. Use BOINC $125,000: Based on the average throughput and budget of the 6 largest volunteer computing projects.