Mandelbrot set bitmap calculation energy usage on Analytical Engine/ENIAC/modern desktop.
July 3, 2011 1:33 PM   Subscribe

Mandelbrot set energy computation across radically different classes of computing hardware

To be unambiguous and specific, I am interested in how much energy (measured in joules) the following three different sorts of computing hardware:

Babbage's Analytical Engine
The ENIAC
A modern desktop computer

Would take to generate:

a 1024x1024 pixel black and white (pixels are bits) image of the standard Mandelbrot set (z->z^2 +c) centered at the origin that spans [-2.0,2.0] on the real axis by [-2.0,2.0] on the imaginary axis, with at most 100 iterations per pixel, and bailing out if the norm ever gets greater than 2.0

I don't know enough about either the analysis of algorithms or the old sorts of hardware. I'm not looking for an exact figure, just a ballpark.
posted by oonh to Science & Nature (3 answers total) 7 users marked this as a favorite
 
Best answer: Let's get some constants and formulas out of the way:
3.25Ghz modern computer speed (hand wavy but convenient)
5 Operations (2 loads, 1 mult, 1 add, 1 store) per test
X * Y * Ops * AvgDepth = 1024*1024*5*50 = ~262 million operations
1W = 1J/s

Modern desktop computers run at about 500W, or 500J/s. A 3.25GHz machine could chew through 262M operations in 80ms, consuming 0.08s*500J/s, or 40J.

http://sandacom.wordpress.com/2011/04/05/happy-belated-birthday-eniac/
This cites ENIAC's power consumption at around 160kW, and that it was 1000 times slower than modern computers in 1996, which were around 200MHz. So really, a modern computer is 16,250 times faster than ENIAC. An 80ms computation would take 1,300 seconds, incurring 1,300s * 160kJ/s = 208,000,000J.

http://blog.jgc.org/2010/10/analytical-engine-vs-zx81.html
This website gives a nice description of the BAE compared to a Timex Sinclair Z81, which ran at 3.25MHz. He notes that the Z81 would be 13,000 times faster than the BAE, which ran at 7Hz. Given the proportion of 3.25Mhz / 7Hz ~= 464,285, then the BAE must have been 464,285 / 13,000 ~= 35 times more efficient per cycle than a Z81. I don't understand the inner workings of the BAE, so I'll take his word for it. A modern computer is 1,000 times faster than a Z81, so it would have taken the BAE 13,000,000 * 0.08s = 1,040,000 seconds to compute that. Oh but wait, it's 35 times more efficient, so let's knock that down to 29,714 seconds.

The remaining question is how hard was it to turn the crank? I have no idea, but it was the size of a locomotive. So, let's just say for the sake of having something, it used a 500 horsepower steam engine, which is 500hp * 745.7W/hp = 372,850 Watts. So... 372,850W * 29,715s = 11.079 billion Joules.

I mean, this is a complete fictitious fabrication, but it looks like computations take on the order of a billion times less energy these days...
posted by hanoixan at 2:37 PM on July 3, 2011 [8 favorites]


OK, so this is a first order estimation. I'm assuming:
-In all cases, we run on bare metal, no OS
-I'm only looking at instructions per second, and only at the shortest instructions
-We're ignoring memory latency / assuming a perfect fetch (which we can sort of do realistically running an iterative algorithm bare metal)
-I assume no pipelining, or any fanciness like that
See the end of my answer for things to do if you want to get more accurate answers.

ENIAC required 150kW of power and could perform 5000 operations per second (add or subtract), this gives us 150,000 Joules per second for 5,000 operations per second. 30 Joules per operation

The Intel Core i7 Extreme Edition 990x can do 159,000 Million Instructions Per Second (MIPS), or 159,000,000,000 instructions per second for 383 Watts (Joules / Second). 2.4 x 10-9 Joules per operation

Unfortunately, the Analytical Engine has never been built, so there aren't many published figures for it.

According to Ada Lovelace:
"Mr. Babbage believes he can, by his engine, form the product of two numbers, each containing twenty figures, in three minutes"

But this is based on speculation on Babbage's part. It took ENIAC 0.002 seconds to multiply two 10 digit numbers (the largest "native" number it could handle). If we make some architecture assumptions, we can say just wild-ass ourselves into this-is-linear land (the wikipedia page on ENIAC as well as the algorithm for multiplying by hand justify this) and say that it would have taken ENIAC 0.004 seconds to multiply two 20 digit numbers.
This is 45k faster than the Analytical Engine. Anyway, this operation takes about 25 cycles on my mental model of 20 digit operand ENIAC, so let's say that it takes the same on the A. Engine. We end up with about 7 seconds per basic operation on the Analytical Engine. Let's say 0.1 instructions / second. (I'm sure that someone more familiar with the analytical engine can get me a better figure than this).

I must admit that I have no idea how to go about calculating even an estimate of the power consumption of a giant mechanical computer which was never built though.
posted by atrazine at 2:47 PM on July 3, 2011 [3 favorites]


The remaining question is how hard was it to turn the crank? I have no idea, but it was the size of a locomotive. So, let's just say for the sake of having something, it used a 500 horsepower steam engine...

I was with you up until here. 500 hp is a LOT of power. This video shows a human being cranking the Difference Engine. Not the same machine as the Analytical, but surely the latter wouldn't have taken 3 orders of magnitude more power. 10 million, rather than 11 billion is probably a better approximation.
posted by DU at 5:10 AM on July 6, 2011


« Older Where to rent near Tulsa, Oklahoma   |   I'm many things, but creative ain't one. Newer »
This thread is closed to new comments.