Presentation is loading. Please wait.

Presentation is loading. Please wait.

A Brief History of BOINC

Similar presentations


Presentation on theme: "A Brief History of BOINC"— Presentation transcript:

1 A Brief History of BOINC
David P. Anderson Space Sciences Lab University of California, Berkeley MICS 2015 April 10, 2015

2

3

4 Scientific computing Consumer electronics BOINC

5 Scientific computing High-performance computing (HPC)
High-throughput computing (HTC) Many independent jobs Rate of job completion matters, not per-job turnaround time

6 HTC applications Simulation of physical systems particle collisions
atomic/molecular (bio, nano) Earth climate system Need for many jobs: Uncertainty (perturbed initial conditions) Parameter sweeps Fit model parameters to observed data

7 HTC applications Compute-intensive data analysis
Particle colliders (LHC) Astrophysics pulsar search gravitational wave search Genomics

8 HTC applications Biology-inspired optimization algorithms
genetic algorithms flocking ant colony

9 Units of computing speed
Floating-point operation (FLOP) GigaFLOPS (109/sec): 1 Central Processing Unit (CPU) TeraFLOPS (1012/sec): 1 Graphics Processing Unit (GPU) PetaFLOPS (1015/sec): 1 supercomputer ExaFLOPS (1018/sec): current Holy Grail

10 Approaches to HTC Supercomputing Cluster computing Grid computing
lots of closely-coupled processors Cluster computing lots of Ethernet-connect PC-type nodes in a room Grid computing share clusters between organizations Cloud computing rent cluster nodes, e.g. Amazon EC2 Volunteer computing use computers owned by consumers

11 Consumer electronics Bitcoin mining, Steam Computing devices
Desktop and laptop computers Mobile: tablets, smartphones Game consoles Set-top boxes, DVRs Wearable (watches, glasses) Appliances Commodity Internet Cable, DSL, fiber to the home, cell networks Bitcoin mining, Steam

12 Performance potential
1 billion Desktop/laptop PCs CPUs: 10 ExaFLOPS GPUs: 1,000 ExaFLOPS 5 billion smartphones CPUs: 20 ExaFLOPS GPUs: 500 ExaFLOPS

13 Volunteer computing Consumers donate computing capacity to History
support science be in a community compete History 1997: GIMPS, distributed.net 1999: 2003: BOINC

14 Limiting factors Volunteership PC availability
Study of college students [Toth 2006] 5% would “definitely participate” 10% would “possible participate” PC availability Study in [Kondo 2008] 65% average availability 35% of PCs are available 24/7

15 Cost of 1 TeraFLOPS/year

16 BOINC: middleware for volunteer computing
Supported by NSF since 2002 Open source (LGPL) Based at UC Berkeley

17 BOINC software client server GUI (C++ or Java) BOINC client (C++)
Job handling (C++) application Web interfaces (PHP) BOINC API (C++) Tools (Python)

18 Volunteer computing with BOINC
projects volunteers CPDN attachments WCG volunteer computing “ecosystem”

19 How to volunteer

20 Choose projects

21 Configure the client

22 Community

23 Account manager architecture
Examples: BAM!, GridRepublic BOINC client account manager projects projects projects

24 Creating a BOINC project
Install BOINC server software on a Linux box on a VM Build apps for Windows/Mac/Linux Attract volunteers develop web site generate publicity communicate with volunteers

25 Volunteer computing today
500,000 active computers 50 projects 10 PetaFLOPS

26 Some BOINC-based projects
IBM World Community Grid Climateprediction.net (Oxford) (CERN) (UC Berkeley) (U. Wash) (Max Planck Inst.)

27 How BOINC works project home PC BOINC server BOINC client
get jobs BOINC server download data, executables BOINC client run jobs upload output files report/get jobs … all over HTTP

28 Issues handled by BOINC
Heterogeneous computers “Plan class” functions can program run on host? how fast? resource usage? Intelligent choice of app version Job size matching job app app versions platform

29 Issues handled by BOINC
Untrusted, anonymous computers Result validation replication, adaptive replication Credit: cheat-proof accounting Consumer-friendly client Job runtime estimation

30 Issues handled by BOINC
Server performance and scalability Shared memory Job cache scheduler feeder validator per app assimilator MySQL DB transitioner db_purge file_deleter

31 Using GPUs BOINC detects and schedules GPUs Issues NVIDIA, AMD, Intel
multiple/mixed GPUs various language systems (CUDA, OpenCL, CAL) Issues non-preemptive GPU scheduling no paging of GPU memory identifying GPUs

32 Multicore apps Next-generation CPUs may have 100+ cores
BOINC supports multi-core apps OpenMP, MPI OpenCL CPU apps

33 Using VM technology Problem: building and maintaining versions for different platforms is hard Even making a portable Linux executable is hard

34 Guest operating system
Virtual machines application Guest operating system Host operating system

35 Virtual machines application Debian Linux 2.6 Windows 7

36 BOINC VM support Create a VM image for your favorite environment
Create executables for that environment VirtualBox executive BOINC client Vbox wrapper VM instance shared directory: executable input, output files

37 VM advantages Develop in your favorite environment
No need to learn Visual Studio, Xcode A VM is a strong “sandbox” Can run untrusted applications Free checkpointing VirtualBox snapshot mechanism base VM image image Δ image Δ

38 Use of BOINC at CERN CERN uses mostly VM-based computing CERN servers
Co-Pilot BOINC client CernVM job queueing system software archive CVMFS ATLAS, CMS, LHCb, Theory

39 BOINC on Android New GUI Battery-related issues Released July 2013
Google, Amazon App Stores ~50K active devices Branded versions HTC: Power to Give Samsung: Power Sleep

40 The future of volunteer computing
How to benefit more scientists? How to attract more volunteers?

41 Integrating with mainstream HTC
HTCondor nanoHUB TACC adapter adapter adapter BOINC server BOINC server BOINC server consumer PCs projects projects

42 Science@home Single “brand” for volunteer computing
Volunteers register for science areas rather than projects biomed, environmental, physics, astro, … Computers are attached to projects based on prefs

43 Implementing Science@home
Use BOINC account manager architecture BOINC client projects projects projects

44 Summary Volunteer computing is BOINC provides software infrastructure
Useful for many HTC applications A path to ExaFLOPS computing A way to popularize/democratize science BOINC provides software infrastructure Many challenges remain Many research opportunities

45 Contact info


Download ppt "A Brief History of BOINC"

Similar presentations


Ads by Google