"Volunteer Computing With Boinc" por Diamantino Cruz e Ricardo Madeira


Published on

Trabalho de Sistemas Paralelos e Distribuidos apresentado em 17 de Junho de 2009: "Volunteer Computing With Boinc" por Diamantino Cruz e Ricardo Madeira

Published in: Technology, Travel
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

"Volunteer Computing With Boinc" por Diamantino Cruz e Ricardo Madeira

  1. 1. Volunteer Computing with<br />Client-Server perspective<br />Presented by:<br />Diamantino Cruz<br />Ricardo Madeira<br />
  2. 2. BOINC (Berkeley Open Infrastructure for Network Computing)<br />What is BOINC?<br />BOINC is middleware system created to simplify the implementation of volunteer computing projects.<br />What is volunteer computing?<br />Volunteer computing is an arrangement in which people (volunteers) provide internet-connected computers, to be used as a source of computing power and storage.<br />Why use volunteer computing?<br />Volunteer computing uses computational resources that would otherwise be unused, to solve computationally intensive projects, for lower costs them other available solutions.<br />
  3. 3. Task Server Components<br />Each BOINC-based projects operates a server consisting of several components:<br />Web interfaces for account and team management, message boards, and other features.<br />A task server that creates tasks dispatches them to clients, and processes returned tasks.<br />A data server that downloads input files and executables, and that uploads output files.<br />The clients periodically communicates with the task server to report completed work and to get new work.<br />
  4. 4. Task Server Components<br />What are the functions of the programs?<br />The work generatorprepares new jobs to be sent and their input files.<br />The scheduler deals requests from the clients. <br /> 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<br />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.<br />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.<br />
  5. 5. Task Server Components<br />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.<br />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.<br />The file deleterdeletes input and output files that are no longer needed.<br />The database purgerremoves jobs and instance database entries that are no longer needed, first writing them to XML log files.<br />The programs communicate using the BOINC database.<br />
  6. 6. Persistent redundant computing<br />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.<br />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.<br />
  7. 7. How The Magic is done Client Side<br />Core Client<br />Client has 2 “modes”<br />Manager<br />Screensaver<br />
  8. 8. Boinc Manager<br />
  9. 9. How The Magic is done Client Side<br />The core client communicates with applications by shared-memory message passing<br />
  10. 10. Failure Protection<br />BOINC uses heartbeat messages<br />BOINC API finalization routine writes a ‘finished file’<br />BOINC supplies a set of printf()-replacement functions that buffer output in memory, and flush these buffers during checkpoint<br />All information about a task (exit code, signal number, standard error output, volunteer host platform) is stored in a relational database on the server<br />
  11. 11. Conclusion, Death, Taxes and BOINC<br />What is the internet for the average Portuguese user<br />google.pt<br />hi5.com<br />youtube.com<br />live.com<br />google.com<br />Additional info<br />11 travian.pt<br />13 facebook.com<br />14 record.pt<br />19 abola.pt<br />Source <br />http://www.alexa.com/topsites/countries/PT<br />
  12. 12. Conclusion, Why use Boinc<br />Suppose you need a lot of computing power - say, 100 TeraFLOPS for 1 year. Here are some ways you can get it: <br />Use Amazon&apos;s Elastic Computing Cloud $175 Million: Based on $0.10 per node/hour. <br />Build a cluster $12.4 Million: This includes power and air-conditioning infrastructure, network hardware, computing hardware, storage, electricity, and sysadmin personnel. <br />Use BOINC $125,000: Based on the average throughput and budget of the 6 largest volunteer computing projects. <br />