410 likes | 495 Views
Explore the journey from early digital computers like ENIAC to advanced systems like Earth Simulator, iPod Nano storage capacity, and the growth of computing power over time with examples and challenges. Discover key concepts such as Moore's Law, Traveling Salesman Problem, and unsolvable problems in computation.
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.