410 likes | 493 Views
The Power and the Limits of Computation. Elaine Rich. The Earliest Digital Computers. 1945 ENIAC. Stored 20 10-digit decimal numbers. The IBM 7090. A dual 7090 system at NASA in about 1962. Could store 32,768 36-bit words. That’s about .00015 gigabytes. Cost: about $3,000,000.
E N D
The Power and the Limits of Computation Elaine Rich
The Earliest Digital Computers 1945 ENIAC Stored 20 10-digit decimal numbers
The IBM 7090 A dual 7090 system at NASA in about 1962. Could store 32,768 36-bit words. That’s about .00015 gigabytes. Cost: about $3,000,000. or $19,794,000 2005 dollars
The Earth Simulator The Earth Simulator (ES) is a project of Japanese agencies to develop a 40 TFLOPS system for climate modeling. 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 2001. 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.
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?
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)
Putting that Rate into Perspective Speed of light: 3 108 m/sec Width of a proton: 10-15 m If we perform one operation in the time light crosses a proton, we can perform: 3 1023 ops/sec Seconds since the big bang: 3 1017 Operations since the big bang: 9 1040 Compared to 36! 3.6 1041
The Post Correspondence Problem 2 X b a b b b Y b a
The Post Correspondence Problem 2 1 X b a b b b b Y b a b b b
The Post Correspondence Problem 2 1 1 X b a b b b b b Y b a b b b b b b
The Post Correspondence Problem 2 1 1 3 X b a b b b b b b a Y b a b b b b b b a
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 2 3 4 • 1,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 2 3 4 • 1,1 1,2 1,3 1,4 1,5 • 2,1 …… • 1,1,1 …. • But what if there is no solution?
Programs Debug Programs Given an arbitrary program, can it be guaranteed to halt? 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
A Problem That Cannot be Solved in Any Amount of Time Given an arbitrary program, can it be guaranteed to halt? 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 result 1 i= 2 2 i= 3 6 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(<Trouble>). • What should Halts(<Trouble>, <Trouble>) 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 <program>,<input> pair as an instance of PCP so that the PCP problem has a solution iff <program> halts on <input>. • 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 <program>,<input> pair as an instance of a tiling problem so that there is an infinite tiling iff <program> halts on <input>. • 00010000111000000111110000000000000 00010000111010000111110000000000000 • 00010000111011000111110000000000000 • … • So if the tiling problem were solvable then Halting would be. • But Halting isn’t. So neither is the tiling problem.