Download presentation
Presentation is loading. Please wait.
Published byMaud Ball Modified over 9 years ago
1
Volunteer Computing with GPUs David P. Anderson Space Sciences Laboratory U.C. Berkeley
2
Outline Volunteer computing BOINC Supporting GPUs in BOINC BOINC projects using GPUs Problems and issues
3
Volunteer computing Early projects – 1997: GIMPS, distributed.net – 1999: SETI@home, Folding@home Today – 50 projects – 500K volunteers – 900K computers – 10 PetaFLOPS
4
Other types of high-throughput computing Clusters – volunteer computing is 10x-100x cheaper Clouds – volunteer computing is 100x-1000x cheaper – but it’s cost-effective to run a volunteer computing server in a cloud Grids – same idea as volunteer computing, but within/among organizations
5
GPUs and volunteer computing Current PetaFLOPS breakdown: Potential: ExaFLOPS by 2010 – 4M GPUs * 1 TFLOPS * 0.25 availability
6
BOINC Middleware for volunteer computing – client, server, web Based at UC Berkeley Space Sciences Lab Open source (LGPL) NSF-funded since 2002 http://boinc.berkeley.edu
7
BOINC: volunteers and projects volunteers projects CPDN LHC@home WCG attachments
8
The BOINC computing ecosystem Better research should get more computing power Public is the Decider The world’s computing power Current scientific research The public
9
Science areas using BOINC Biology – protein study, genetic analysis Medicine – drug discovery, epidemiology Physics – LHC, nanotechnology, quantum computing Astronomy – data analysis, cosmology, galactic modeling Environment – climate modeling, ecosystem simulation Math Graphics rendering
10
Application types Computing-intensive analysis of large data Physical simulations Genetic algorithms – GA-inspired optimization Sensor networks – Quake-Catcher Network: distributed seismography
11
Software overview client apps screensaver GUI scheduler MySQL data server daemons volunteer host project server HTTP
12
Client: job scheduling Queue lots of jobs – to avoid starvation – for variety Job scheduling – Round-robin time-slicing – Earliest deadline first
13
Client: work fetch policy When? Who? How much? Goals – maintain enough work – minimize scheduler requests – honor resource shares per-project debt CPU 0 CPU 3 CPU 2 CPU 1 max min
14
Scheduling: server Possible outcomes of a job: – success – runs but returns wrong answer – doesn’t run, returns wrong answer (hacker) – crashes, client reports it – never hear from client again Job delay bounds Replicated computing – homogeneous replication
15
Good estimates matter If overestimate: – won’t send work to some computers – some computers will run out of work If underestimate: – wasted computation – volunteers may not get credit for work done
16
Server abstractions applications Win32 Win64 Mac OS X app versions jobs instances
17
Scheduler overview MySQL feeder schedulers share-memory job cache client
18
GPUs: the general situation (client) One or more GPUs – possibly different RAM, speed, compute capability etc. – some driver version CPUs, memory Operating system Availability info Attached to a set of projects with various resource shares
19
GPUs: the general situation (server) Possibly multiple versions of a given app for a given platform. Each version may have: – HW/SW requirements – resource usage (#GPUs, #CPUs) – host-specific performance characteristics Jobs with varying FLOPs estimates and deadlines Things may change over time
20
The general situation: issues Client: – how does work fetch policy change? – how to describe GPU resources? – how to schedule GPU (and other) jobs? Server: – how to decide what jobs to send and what app version to use? – how to estimate job runtime?
21
Representing GPU resources Hosts may have multiple GPUs with different characteristics But most don’t, so represent GPU resources as (count, characteristics)
22
Scheduling GPU jobs CPU and main memory resources are virtualized, but GPU is not Job scheduling for GPUs: – EDF if in danger of deadline miss, else FIFO – Preempt by kill – Wait for exit before start next job BOINC client allocates GPUs, tells apps which instance(s) to use (-- device N)
23
Keeping users happy GPU apps ruin GUI response User pref: “Don’t use GPU while computer in use” (default: on) Ideal: – use non-display GPUs all the time – use display GPU if not running graphics app (Aero counts as a graphics app)
24
Work fetch for GPUs: goals Separate work buffers for different resource types Resource shares apply to combined resource types Example: projects A, B have same resource share; A has CPU and GPU jobs, B has only GPU jobs GPU CPU A BA
25
Generalized work fetch policy For each resource type – per-project backoff – per-project debt accumulate only while not backed off A project’s overall debt is weighted average of resource debts Get work from project with highest overall debt
26
How to choose app version? App versions can have project-supplied “planning function” Inputs: – host description Outputs: – Whether host can run app version – Resource usage (#CPUs, #GPUs) – expected FLOPS
27
App version selection Call planning function for platform’s app versions Skip versions that use resources for which no work is being requested Use the version with highest expected FLOPS Repeat this when a resource request is satisfied
28
GPUs and anonymous platform Anonymous platform mechanism – volunteer supplies app versions – why? security, optimization, unsupported platforms App version description can include GPU usage – BOINC client schedules jobs accordingly – works even if project has no GPU apps
29
Einstein@home Gravitational waves; gravitational pulsars
30
SETI@home
31
Milkyway@home
32
GPUGRID.net
33
AQUA@home D-Wave Systems Simulation of “adiabatic quantum algorithms” for binary quadratic optimization
34
Collatz Conjecture even N → N/2 odd N → 3N + 1 always goes to 1?
35
% hosts with an NVIDIA GPU
36
Number of GPUs per host
37
Video RAM
38
GPU model
39
Driver version
40
Productivity
41
Future work for NVIDIA Preemptive prioritized scheduling of GPU Provide mechanisms so that – BOINC can avoid running GPU apps if memory or processors not available – BOINC can quit running apps if something else wants GPU Fix bug where Windows services can’t see GPUs
42
Future work for BOINC Maintain GPU availability separately Add GPUs to simulators – server simulator – client simulator Add GPUs to homogeneous redundancy framework
43
Conclusion GPU computing + volunteer computing = the future of scientific computing
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.