The Power and the Limits of Computation Elaine Rich
The Earliest Digital Computers 1945 ENIAC Stored digit decimal numbers
The IBM 7090 A dual 7090 system at NASA in about Could store 32, bit words. That’s about gigabytes. Cost: about $3,000,000. or $19,794, dollars
The Earth Simulator The Earth Simulator (ES) is a project of Japanese agencies to develop a 40 TFLOPS system for climate modeling.Earth Simulator The ES site is a new location in an industrial area of Yokohama, an hour drive west of Tokyo. The facility became operational in late Hardware The ES is based on: 5,120 (640 8-way nodes) 500 MHz NEC CPUs 8 GFLOPS per CPU (41 TFLOPS total) 2 GB (4 512 MB FPLRAM modules) per CPU (10 TB total) shared memory inside the node 640 × 640 crossbar switch between the nodes 16 GB/s inter-node bandwidth 20 kVA power consumption per node
The iPod Nano 2005 Can store 4 gigabytes (1000 songs). Cost: about $250.
Compute Power Increases Over Time From Hans Moravec, Robot Mere Machine to Transcendent Mind 1998.
Moore’s Law
What Can We Do With All that Power? Overheard in ACES last week: “Genomics has turned biology into an information science.” Is there anything we can’t do?
The Traveling Salesman Problem
Finding a Solution to the TSP Given n cities: n choices for a starting point. n-1 for the next city n-2 for the next city For a total of n! paths to be considered.
Finding a Solution to the TSP Given n cities: n choices for a starting point. n-1 for the next city n-2 for the next city For a total of n! paths to be considered. We notice that it doesn’t matter where we start (since we need to make a loop). And the cost is the same forward or backward. So we can cut the number of paths down to: (n – 1)!/2
The Growth Rate of n! n! = n(n-1)(n-2)…(1) 10 41
Putting that Rate into Perspective Speed of light:3 10 8 m/sec Width of a proton: m If we perform one operation in the time light crosses a proton, we can perform:3 ops/sec Seconds since the big bang:3 Operations since the big bang:9 Compared to 36!3.6 10 41
The Post Correspondence Problem iXY 1bbbb 2babbbba 3 a 4bbbaababbb
The Post Correspondence Problem iXY 1bbbb 2babbbba 3 a 4bbbaababbb 2 X b a b b b Yb a
The Post Correspondence Problem iXY 1bbbb 2babbbba 3 a 4bbbaababbb 21 X b a b b b b Yb a b b b
The Post Correspondence Problem iXY 1bbbb 2babbbba 3 a 4bbbaababbb 21 1 X b a b b b b b Yb a b b b b b b
The Post Correspondence Problem iXY 1bbbb 2babbbba 3 a 4bbbaababbb X b a b b b b b b a Yb a b b b b b b a
The Post Correspondence Problem iXY iXY
The Post Correspondence Problem A program to solve this problem: Until a solution is found do: Generate the next candidate solution. Test it. If it is a solution, halt and report yes. So, if there are say 4 rows in the table, we’ll try: ,1 1,2 1,3 1,4 1,5 2,1 …… 1,1,1 ….
The Post Correspondence Problem A program to solve this problem: Until a solution is found do: Generate the next candidate solution. Test it. If it is a solution, halt and report yes. So, if there are say 4 rows in the table, we’ll try: ,1 1,2 1,3 1,4 1,5 2,1 …… 1,1,1 …. But what if there is no solution?
A Tiling Problem
Programs Debug Programs read n if 2*int(n/2) = n then print “even” else print “odd” read n result = 1 for i = 2 to n do result = result * i print result Given an arbitrary program, can it be guaranteed to halt?
A Problem That Cannot be Solved in Any Amount of Time read n if 2*int(n/2) = n then print “even” else print “odd” read n result = 1 for i = 2 to n do result = result * i print result Given an arbitrary program, can it be guaranteed to halt? result 1 i= 22 i= 36 i= 4 24 i= 5 120
Other Kinds of Loops result = 0 count = 0 until result > 100 do read n count = count + 1 result = result+n print count
Other Kinds of Loops result = 0 count = 0 until result > 100 do read n count = count + 1 result = result+n print count Suppose all the inputs are positive integers.
Other Kinds of Loops result = 0 count = 0 until result > 100 do read n count = count + 1 result = result+n print count Suppose some of the integers are negative.
The Halting Problem Is Not Solvable Suppose that the following program existed: Halts(program, string) returns: True if program halts on string False otherwise
The Halting Problem is Not Solvable Consider the following program: Trouble(string) = If Halts(string, string) then loop forever else halt. Now we invoke Trouble( ). What should Halts(, ) say? If it: Returns True (Trouble will halt): Trouble loops Returns False (Trouble will not halt): Trouble halts So there is no answer that Halts can give that does not lead to a contradiction.
Other Unsolvable Problems PCP: We can encode a, pair as an instance of PCP so that the PCP problem has a solution iff halts on. So if PCP were solvable then Halting would be. But Halting isn’t. So neither is PCP.
Other Unsolvable Problems Tiling: We can encode a, pair as an instance of a tiling problem so that there is an infinite tiling iff halts on … So if the tiling problem were solvable then Halting would be. But Halting isn’t. So neither is the tiling problem.