By 2015, the global consumer digital infrastructure will include two resource pools of importance to scientific computing: a billion GPU-equipped desktop and laptop computers with a capability of roughly 100 ExaFLOPS, and 10 billion mobile devices with a capacity of about 20 ExaFLOPS and energy efficiency about 20 times better than larger devices. Volunteer computing is a proven approach by which these resources can be used for scientific computing. BOINC (Berkeley Open Infrastructure for Network Computing) is the dominant middleware for volunteer computing. This project will extend BOINC to create the technology for the next generation of volunteer computing, focusing on the following areas:
1) Computing on mobile devices: support for scientific computing on smart phones and other mobile devices based on Android;
2) Virtual-machine applications: support for applications that run in virtual machines. This reduces heterogeneity issues and, by providing a strong form of sandboxing, allows untrusted applications to be run on volunteer computers;
3) Multi-user projects: server-side features that allow the resources of a BOINC-based project to be shared fairly among many scientists. This will allow BOINC to be used effectively by science portals.
In addition we will add other new capabilities to BOINC, and will add support for new operating system versions, GPU types and models, and language systems such as OpenCL.
By providing scientists with access to huge and essentially free computing power, this will enable new research in fields such as nanotechnology, proteomics, genomics, climate modeling, epidemiology, cancer care, bio-fuels, battery technology for electric vehicles, earthquake engineering, volcanic activity, pharmaceutical engineering, microelectromechanical systems, and modeling of biological ecosystems, to name a few. In addition, by attracting millions of ?citizen scientists? who volunteer their computing resources, we will increase public awareness of and interest in science, and will expand the public outreach and education channel provided by volunteer computing
"Volunteer computing" uses consumer computing devices – desktop and laptop computers, tablets, smartphones, video game consoles, etc. – do to scientific computing. This grant has funded the maintenance and development of BOINC, a middleware system for volunteer computing. In volunteer computing, the cost of acquiring, maintaining, and powering the computing resources is borne by consumers, rather than by scientists and funding agencies. This contrasts with alternatives such as clusters, Grids, Clouds, and supercomputers. Currently, about 400,000 computing devices are doing scientific computing using BOINC. Together they provide about 10 PetaFLOPS of computing power – roughly the capacity of one of the largest conventional supercomputers. The potential is much greater; there are billions of consumer PCs and mobile devices, with a capacity of thousands of PetaFLOPS. About 40 projects use BOINC to do scientific computing. For example: CERN uses BOINC to simulate particle collisions in the Large Hadron Collider (LHC). Einstein@home uses BOINC to detect gravitational waves and binary pulsars. IBM World Community Grid uses BOINC for a number of humanitarian projects, including drug discovery for Ebola, AIDS, and childhood cancer, development of materials for high-efficiency solar cells, and development of nanotechnology-based water filtration systems. Rosetta@home uses BOINC to study the molecular basis of diseases such as HIV, Malaria, and Alzheimer’s. The results of this BOINC-enabled research have been published in numerous papers, including papers in top journals such as Science, Nature, and Cell. This grant funded the development of many new and important features of BOINC: We developed a BOINC client for Android devices such as smartphones, so that they can do scientific computing while charging at night. This was used as the basis for branded BOINC versions by smartphone manufacturers Samsung ("Power Sleep") and HTC ("Power to Give"). We extended BOINC’s support for Graphics Processing Unit (GPU) computing, including support for Intel GPUs and for applications based on OpenCL, a vendor-neutral language system for scientific computing on GPUs and many-core CPUs. We developed support for applications that run in virtual machines (VMs). This means that science projects – which typically use Linux – can use BOINC without having to develop versions of their applications for Windows and Mac OS X. We made BOINC more interoperable with other distributed computing systems by adding features for efficiently moving jobs and files between these systems and BOINC. We used these features to integrate BOINC with HTCondor, a widely-used system for Grid computing, so that HTCondor jobs can transparently be handled by a BOINC system. The grant also funded maintenance activities such as supporting BOINC on new versions of consumer operating systems (Windows 10, Mac OS X Yosemite, Android 5.0), tracking and fixing bugs, and incorporating security fixes in dependent software such as the OpenSSL Heartbleed vulnerability. Finally, the grant funded our support of several community-based aspects of BOINC development and maintenance: Organizing and conducting a yearly 4-day workshop that brings together new and existing BOINC projects and BOINC developers, to educate, train, form collaborations, and guide future development. Volunteer-based translation of BOINC web and client software interfaces into 20+ languages. Volunteer-based beta testing of the BOINC client software. Volunteer-staffed, web-based systems for providing technical support to new and non-technical BOINC users. Managing volunteer open-source code contributors. As a result of these activities, we have achieved our goals of creating a large-capacity, low-cost resource for high-throughput scientific computing, supporting its use by scientists in a variety of areas, and increasing public awareness of and involvement in science.