Introduction to BOINC By: Andrew J Younge http://blackrose02.rit.edu/wiki/doku.php?id=users:andrew_younge Rochester Institute of Technology 20:09:51 Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu 1 Outline • • • • • • • What is BOINC? How it works The BOINC Manager The Backend Applications for BOINC Summary The Lattice Project 20:09:51 Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu 2 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 20:09:51 Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu 3 How does it work? 20:09:51 Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu 4 BOINC Runtime System [4] • Consists of an application, the core client, the BOINC manager, and an optional BOINC screensaver 4/9/2015 Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu 5 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 20:09:51 Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu 6 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 20:09:51 Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu 7 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 4/9/2015 Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu 8 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 20:09:51 Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu 9 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 20:09:51 Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu 10 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 20:09:51 Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu 11 The Lattice Project [8] http://boinc.umiacs.umd.edu/ 20:09:51 Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu 12 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, 196203 [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 4/9/2015 Service Oriented Cyberinfrastructure Lab, http://blackrose02.rit.edu 13