models and metrics for energy-efficient computer systems · collaborators: mehul shah, dimitris...

57
Models and Metrics for Energy-Efficient Computer Systems Suzanne Rivoire May 22, 2007 Ph.D. Defense EE Department, Stanford University

Upload: others

Post on 06-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Models and Metrics forEnergy-Efficient Computer Systems

Suzanne RivoireMay 22, 2007Ph.D. DefenseEE Department, Stanford University

Page 2: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Power and Energy Concerns Processors: power density

[Borkar, Intel]

Page 3: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Power and Energy Concerns (2) Personal computers

Mobile devices: battery life/usability Desktops: electricity costs, noise

Servers and data centers Power and cooling costs Reliability Density/scalability Pollution Load on utilities

Page 4: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Underlying Questions Metrics: What are we aiming for?

Compare energy efficiency Identify / motivate new designs

Models: How do we get there? Understand how high-level properties affect

power Improve power-aware scheduling policies /

usage

Page 5: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Talk Overview

Metrics: JouleSort benchmark First complete, full-system energy-efficiency

benchmark Design of winning system

Models: Mantis approach Generates family of high-level full-system

models Generic, accurate, portable

Page 6: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

JouleSort energy-efficiency benchmark

JouleSort benchmark specification Workload, metric, guidelines Rationale and pitfalls

Energy-efficient system design:2007 “winner” 3.5× better than previous best Insights for future designs

[S. Rivoire, M. A. Shah, P. Ranganathan, C. Kozyrakis, “JouleSort:A Balanced Energy-Efficiency Benchmark,” SIGMOD 2007.]

Page 7: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Why a benchmark?

Track progress, compare systems, spurinnovation

Current benchmarks/metrics

Limitations of current metrics: Under-specified or “under construction” Limited to a particular component or domain

Page 8: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Benchmark design goals

Holistic and balanced: exercises all corecomponents

Inclusive and representative: meaningfuland implementable on many differentmachines

History-proof: meaningful comparisonsbetween scores from different years

Page 9: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Benchmark specification overview

Workload

Metric

Rules

Page 10: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Workload: External sort

Sort randomly permuted 100-byte recordswith 10-byte keys

From file on non-volatile store to file onnon-volatile store (“external” storage)

Page 11: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

External sort workload

Simple and balanced Exercises all core components CPU, memory, disk, I/O, OS, filesystem End-to-end measure of improvement

Inclusive of variety of systems PDAs, laptops, desktops, supercomputers

Representative of sequential I/O tasks Technology trend bellwether Supercomputers to clusters, GPU?

Page 12: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Existing sort benchmarks Sort benchmarks used since 1985

Pure performance MinuteSort: How many records sorted in 1 min? Terabyte: How much time to sort 1 TB?

Price-performance PennySort: How many records sorted for $0.01? Performance-Price: MinuteSort/$$

More info at http://research.microsoft.com/barc/SortBenchmark/

Page 13: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

JouleSort metric choices How to weigh power and performance?

Equally (energy)? Energy (Joules) = Power (Watts) × Time (sec.)

Privilege performance (energy-delay product)?

What to fix and what to compare? Fix energy budget and compare records sorted? Fix num. records and compare energy? Fix time budget and compare records/Joule?

Page 14: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

0

2000

4000

6000

8000

10000

12000

14000

16000

18000

1.0E+05 1.0E+06 1.0E+07 1.0E+08 1.0E+09 1.0E+10

Records Sorted

SR

ecs/J

.

Records Sorted

Problem with Fixed Time Budget1-pass sort

< 10 sec (N lg N)complexity

Sor

tedR

ecs/

Joul

e

Page 15: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Final metric: Fixed input size

3 classes: 10GB, 100GB, 1TB Winner: minimum energy Report (records sorted / Joule)

Inter-class comparisons imperfect Adjust classes as technology improves

Page 16: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Energy measurement setup

Power

Powermeter

Sorting system

Monitoring system

Wall AC power

Power readings(serial cable) Sort timing

(network)

Page 17: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Talk Overview

Metrics: JouleSort benchmark First complete, full-system energy-efficiency

benchmark Design of winning system

Models: Mantis approach Generates family of high-level full-system

models Generic, accurate, portable

Page 18: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Representative systems

406

22

140

90

290

Pwr (W)~320059GBn/a9GPUTeraSort

(estimated)

~340010GB1%1Laptop

~380010GB>90%12Commodityfileserver

~120010GB26%2Low-endserver

11%

CPU %

~3005GB1Blade

SRecs/JSRecsDisks

Page 19: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Representative systems

406

22

140

90

290

Pwr (W)~320059GBn/a9GPUTeraSort

(estimated)

~340010GB1%1Laptop

~380010GB>90%12Commodityfileserver

~120010GB26%2Low-endserver

11%

CPU %

~3005GB1Blade

SRecs/JSRecsDisks

Page 20: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Representative systems

406

22

140

90

290

Pwr (W)~320059GBn/a9GPUTeraSort

(estimated)

~340010GB1%1Laptop

~380010GB>90%12Commodityfileserver

~120010GB26%2Low-endserver

11%

CPU %

~3005GB1Blade

SRecs/JSRecsDisks

Page 21: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Energy-Efficient Components:Processor

52% power

75% perf

Fileserver CoolSort

Sort BW: 313 MB/s

65W (peak)

Sort BW: 236 MB/s

34W (peak)

Page 22: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Energy-Efficient Components: Disks

15% power

50% perf

Fileserver Our winner

Seagate BarracudaSeq. BW: 80MB/s

13W

Hitachi TravelstarSeq. BW: 40MB/s

2W

Page 23: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

CoolSort DesignAsus motherboard:

Mobile CPU + 2 PCI-e slots

RocketRAID Disk Controllers

13 Hitachi TravelStar 160GB

Page 24: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

0

2000

4000

6000

8000

10000

12000

2 3 4 5 6 7 8 9 10 11 12 13

Disks Used

Sort

edR

ecs/

Joul

e

0

20

40

60

80

100

120

140

Sort

edR

ecs/

sec

(x 1

0E4)

SRecs/J Perf

Maximizing performance Balanced sort: enough disks to fully utilize CPU Disks running near peak BW

GPUTeraSort

Page 25: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

CoolSort: The 100 GB winner

11,300 records sorted per Joule

3.5× more efficient than GPUTeraSort

Average sorting power: 100 W

Page 26: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Insights for future designs Low-hanging fruit: use low-power HW

Best power-performance trade-off Still need to fully utilize resources Challenge: adequate interfaces and “glue” to bring laptop

components into servers

Scaledown efficiency Limited dynamic range For fixed HW: peak efficiency = peak performance How can we design machines that perform equally well in

different benchmark classes?

Page 27: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Benchmark limitations

Tests energy efficiency at high utilization --but most servers are under-utilized How efficient is system at 50% utilization?

20%?

Doesn’t measure building power/cooling

Real goal: TCOSort JouleSort and PennySort give pieces of the

answer

Page 28: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

JouleSort Conclusions Need energy-efficiency benchmark JouleSort specification

Simple, representative, full-system benchmark Workload, metric, measurement rules

CoolSort system 3.5× better than 2006 estimated winner Mobile components, server-class interfaces

Part of the sort benchmark suite joulesort.stanford.edu

Page 29: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Talk Overview

Metrics: JouleSort benchmark First complete, full-system energy-efficiency

benchmark Design of winning system

Models: Mantis approach Generates family of high-level full-system

models Generic, accurate, portable

Page 30: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Who needs power models?

Component and system designers How do design decisions affect power?

Users How do my usage patterns affect power?

Data center schedulers How will workload distribution decisions affect

power?

Page 31: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Power modeling goals

Goal: Online, full-system power models Model requirements

Non-intrusive and low-overhead Easy to develop and use Fast enough for online use Reasonably accurate (within 10%) Inexpensive Generic and portable

Page 32: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Power modeling approaches

Detailed component models Simulation-based Hardware metric-based

High-level full-system models

Page 33: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Detailed models: Simulation-based

Inexpensive, arbitrarily accurate Not full-system Slow (not real-time) Not portable

Input:- Current state- Architecture- Circuit parameters

SimulationOutput:Predicted power(component)

Page 34: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Detailed models: Metric-based

Highly accurate Not full-system Complex, require specialized knowledge Not portable

Input:- Design info- HW counters

EquationOutput:Predicted power(component)

[Contreras and Martonosi, ISLPED 2005][Isci and Martonosi, MICRO 2003]

Page 35: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

High-level metrics (Mantis)

How accurate? How portable? Tradeoff between model parameters/complexity

and accuracy?

Input:Common util.metrics

EquationOutput:Predicted power(system)

Page 36: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Power Modeling Run one-time calibration scheme

(possibly at vendor) Stress individual components: CPU,

memory, disk Outputs: time-stamped performance

metrics & AC power measurements Fit model parameters to calibration

data Use model to predict power

Inputs: performance metrics at eachtime t

Output: estimation of AC power ateach time t

Page 37: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Models studied

Constant power (the null model):

CPU utilization-based models

!

P = C0

Input:CPU util. %

EquationOutput:Predicted power(system)

Page 38: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

CPU utilization-based models

Linear in CPU utilization

Empirical power model

[Fan et al, ISCA 2007]

!

P = C0

+ C1u + C

2u

r

!

P = C0

+ C1u

Page 39: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

CPU + disk utilization

Input:- CPU util. %- Disk util. %

EquationOutput:Predicted power(system)

!

P = C0

+ C1u

CPU+ C

2u

disk

[Heath et al, PPoPP 2005]

Page 40: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

CPU + disk util. + performance ctrs

Input:- CPU util. %- Disk util. %- CPU perfctrs

EquationOutput:Predicted power(system)

!

P = C0

+ C1u

CPU+ C

2u

disk+ C

iP

i"

[D. Economou, S. Rivoire, C. Kozyrakis,P. Ranganathan, MoBS 2006]

Page 41: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

CPU performance counters Configurable processor registers to count

microarchitectural events Requires OS modification In this study:

Memory bus transactions Unhalted CPU clock cycles Instructions retired/ILP Last-level cache references Floating-point instructions

Page 42: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Evaluation methodology

Run calibration suite and develop modelson a variety of machines

Run benchmarks, collecting metrics andAC power

Compare predicted power from metricswith measured AC power

Page 43: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Evaluation machines

CoolSort with 1 and 13 disks Highest and lowest frequencies

2005-era AMD laptop Highest and lowest frequencies

2005-era Itanium server 2008-era Xeon server with 32 GB FBDIMM Variety in component balance, processor,

domain, dynamic range

Page 44: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Evaluation benchmarks

SPECcpu int and fp Laptop: gcc and gromacs only

SPECjbb Stream I/O-intensive programs

ClamAV Nsort (CoolSort-13 only) SPECweb (Itanium only)

Page 45: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Overall mean % error

Page 46: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Overall mean % error

Any model is more accurate than none, andmore detail/complexity is better than less.

Page 47: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Overall mean % error

Performance counter model is most accurateacross the board.

Any model is more accurate than none, andmore detail/complexity is better than less.

Page 48: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Overall mean % error

Performance counter model is most accurateacross the board.

Any model is more accurate than none, andmore detail/complexity is better than less.

Simple linear CPU-util. model gets within10%…with some exceptions.

Page 49: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Best case for empirical CPU model(Xeon server)

Page 50: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Best case for empirical CPU model(Xeon server)

Useful to model shared resources andbottlenecks

Page 51: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Best case for performance counters(Xeon server and CoolSort-13)

Page 52: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Best case for performance counters(Xeon server and CoolSort-13)

Necessary when dynamic memory power is high

Page 53: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Best case for performance counters(Xeon server and CoolSort-13)

Necessary when dynamic memory power is high

Useful to tell how CPU is being utilized

Page 54: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Modeling conclusions Generic approach to power modeling yields

accurate results Simple models overall have < 10% error Same parameters across very different machines More information better models

Linear CPU util. model not enough for… Machines and workloads that are not CPU-dominated CPUs with shared resource bottlenecks Aggressively power-optimized CPUs …all of which reflect hardware trends.

Page 55: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Future work

Beyond CPU, memory, and disk GPUs Network (not a factor today)

Model complexity Combine exponential CPU model w/ perfctrs? Cooling?

Page 56: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Overall Summary Models and metrics needed to improve

energy efficiency Metrics:

JouleSort energy-efficiency benchmarkspecification

Winning JouleSort machine Models:

Simple, portable high-level modeling technique Trade-offs between accuracy and simplicity

Page 57: Models and Metrics for Energy-Efficient Computer Systems · Collaborators: Mehul Shah, Dimitris Economou, Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie Orgish, Teresa Lynn

Acknowledgments

Advisor: Christos Kozyrakis Mentor: Partha Ranganathan Committee: Kunle Olukotun & Dwight Nishimura Collaborators: Mehul Shah, Dimitris Economou,

Justin Meza Assistance: Jacob Leverich, HP Labs, Charlie

Orgish, Teresa Lynn Defense food! Jayanth and Amin Architecture grad students Grant Gavranovic, Kelley Rivoire, friends & family