130 likes | 243 Views
Introduction to BOINC. By: Andrew J Younge http://blackrose02.rit.edu/wiki/doku.php?id=users:andrew_younge. Outline. What is BOINC? How it works The BOINC Manager The Backend Applications for BOINC Summary The Lattice Project. Berkeley Open Infrastructure for Network Computing [1,3,5].
E N D
Introduction to BOINC By: Andrew J Younge http://blackrose02.rit.edu/wiki/doku.php?id=users:andrew_younge Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu
Outline • What is BOINC? • How it works • The BOINC Manager • The Backend • Applications for BOINC • Summary • The Lattice Project Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu
Berkeley Open Infrastructure for Network Computing [1,3,5] • BOINC is an open source middleware system for deploying a desktop “grid” based on volunteer computing. • Originally created from the SETI@home project by David Anderson from University of California, Berkeley. • Now has over 22 full scale production projects and dozens of alpha projects exist • Projects are based on different scientific disciplines • BOINC has over 560,000 active computers (hosts) worldwide processing on average 955 TFLOPS as of March 13, 2008 Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu
How does it work? Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu
BOINC Runtime System [4] • Consists of an application, the core client, the BOINC manager, and an optional BOINC screensaver Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu
BOINC Manager • Front-end for core client software • Available for Windows, Mac OS X, and Linux • Can run in Simple or Advanced modes • Add projects, download workunits • Ability to run as a screensaver instead Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu
The BOINC Server Complex • Scheduling servers • Relational database (typically MySQL) • File server for file distribution to hosts • Web interface • Basic information about the project • Listing of applications • Server status page • Forums for users to interact • Administration utility Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu
Workunit Distribution [2] • One workunit creates multiple result units for redundancy • Workunit distribution • Scheduler • Feeder • Application specific tools • Validator • Trivial Validator - CPU times • Bitwise Validator - exact results • Assimilator - post processing of results Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu
Applications for BOINC [6,7] • BOINC, like any other grid system, is made for large scale computationally intensive problems. • Embarrassingly Parallel applications • Low data/computer ratio • Not cost effective to transfer massive amounts • Reduce server load • Large public appeal Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu
Creating Applications on BOINC • Supports all major OS platforms • C/C+/Fortran supported natively • Have to use the BOINC API int boinc_init(); int boinc_finish(int status); int boinc_resolve_filename(char *logical_name, char *physical_name, int len); boinc_fopen(char* path, char* mode); • Can use a wrapper program for some applications to simplify porting to “Legacy” applications • Handles API calls for you • Doesn’t support graphics • New as of 5.5.1 Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu
Summary • BOINC is a great way to “scavenge” lots of unused CPU cycles at very low cost • You can run a BOINC project with just a developer, a system administrator, and a few thousand dollars in hardware! • Allows for volunteers to participate in real world computational problems without having to know any of the details Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu
The Lattice Project [8] http://boinc.umiacs.umd.edu/ Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu
References [1] Anderson, D. BOINC: A System for Public-Resource Computing and Storage. Proceedings of the 5th IEEE/ACM International Workshop on Grid Computing, 2004, 4-10 [2] Anderson, D.; Korpela, E. & Walton, R. High-Performance Task Distribution for Volunteer Computing. e-Science and Grid Computing, First International Conference on, 2005, 196-203 [3] Anderson, D. & Fedak, G. The Computational and Storage Potential of Volunteer Computing. Proceedings of the IEEE International Symposium on Cluster Computing and the Grid, 2006 [4] Anderson, D.; Christensen, C. & Allen, B. Designing a Runtime System for Volunteer Computing. Proceedings of the 2006 IEEE/ACM SC06 Conference, 2006 [5] Kacsuk, P.; Podhorszki, N. & Kiss, T. Scalable Desktop Grid System. Proc. of 7th International meeting on high performance computing for computational science, Springer, 2006 [6] Stockinger, H.; Pagni, M.; Cerutti, L. & Falquet, L. Grid Approach to Embarrassingly Parallel CPU-Intensive Bioinformatics Problems. Proceedings of the Second IEEE International Conference on e-Science and Grid Computing, IEEE Computer Society, 2006 [7] Schmidt, B. A survey of desktop grid applications for e-science. International Journal of Web and Grid Services, Inderscience, 2007, 3, 354-368 [8] Myers, D. S.; Bazinet, A. L. & Cummings., M. P. Expanding the reach of Grid computing: combining Globus- and BOINC-based systems. Grids for Bioinformatics and Computational Biology, 2008, 2, 71-85 Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu