Always race to sleep? i.e. how we managed to confuse ourselves by talking about two kinds of race to sleep
Always race to sleep? i.e. how we managed to confuse ourselves by talking about two kinds of race to sleep Single node – amortize static power cost Many nodes – minimize parallelization overhead
1. Background: Common system power and work rate behaviors 2. Analysis: Required conditions for race to sleep 3. Empirical data: When are those conditions met in Hadoop?
Two common behaviors for system power Resource proportional Not resource proportional
Three common behaviors for system work rate Linear speed up Parallelization overhead Bottleneck elsewhere
1. Background: Common system power and work rate behaviors 2. Analysis: Required conditions for race to sleep 3. Empirical data: When are those conditions met in Hadoop?
Work rate
Power
Work rate Power Power efficiency = work rate / power
Work rate Power Power efficiency = work rate / power
Work rate Power Power efficiency = work rate / power Yes Time benefit, no energy benefit Yes Increasing efficiency Race to sleep? i.e. operate at highest work rate? No Decreasing efficiency Somewhat Turning point exists Energy benefit, no time benefit Yes and no
Work rate Power Power efficiency = work rate / power Yes Increasing efficiency Race to sleep? i.e. operate at highest work rate? No Decreasing efficiency Somewhat Turning point exists Yes and no Time benefit, no energy benefit Energy benefit, no time benefit
Work rate Power Power efficiency = work rate / power Race to sleep? i.e. operate at highest work rate? Go faster if % increase in work rate ≥ % increase in power Go slower otherwise
Work rate Power Power efficiency = work rate / power Race to sleep? i.e. operate at highest work rate? Required condition for race to sleep Go faster if % increase in work rate ≥ % increase in power Go slower otherwise
Work rate Power Power efficiency = work rate / power Race to sleep? i.e. operate at highest work rate? e.g. Old work rate = A New work rate = 1.1A Old power = B New power = 1.05A Old power efficiency = A / B New power efficiency = (1.1 / 1.05) × (A / B) = (1.1 / 1.05) × old power eff. Required condition for race to sleep Go faster if % increase in work rate ≥ % increase in power Go slower otherwise
1. Background: Common system power and work rate behaviors 2. Analysis: Required conditions for race to sleep 3. Empirical data: When are those conditions met in Hadoop?
Hadoop sort 10GB terasort format HDFS read 10GB HDFS write 10GB Hadoop shuffle 10GB
Work rate Hadoop sort 10GB terasort format HDFS read 10GB HDFS write 10GB Hadoop shuffle 10GB
Work rate Hadoop sort 10GB terasort format HDFS read 10GB HDFS write 10GB Hadoop shuffle 10GB Power efficiency
Work rate Hadoop sort 10GB terasort format HDFS read 10GB HDFS write 10GB Hadoop shuffle 10GB Power efficiency Race to sleep No Yes No Yes
That was multi-node power efficiency Single-node power efficiency is a different picture
Always race to sleep?
Maybe the question should be Always use as much resources as possible?
Always race to sleep? Maybe the question should be Always use as much resources as possible? Take away: Single node – amortize static power cost (awake nodes should race to sleep) Many nodes – minimize parallelization overhead (as few nodes awake as possible) Increase resource if resulting % work rate increase ≥ % power increase
Work rate Power Power efficiency = work rate / power Yes Increasing efficiency Race to sleep? i.e. operate at highest work rate? No Decreasing efficiency Somewhat Turning point exists Yes and no Time benefit, no energy benefit Energy benefit, no time benefit
Other junk …
Power efficiency = energy efficiency
=