The Power and the Limits of Computation

41
The Power and the Limits of Computation Elaine Rich

description

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. - PowerPoint PPT Presentation

Transcript of The Power and the Limits of Computation

Page 1: The Power and the Limits of Computation

The Power and the Limits of Computation

Elaine Rich

Page 2: The Power and the Limits of Computation

The Earliest Digital Computers

1945 ENIAC

Stored 20 10-digit decimal numbers

Page 3: The Power and the Limits of Computation

The IBM 7090A 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

Page 4: The Power and the Limits of Computation
Page 5: The Power and the Limits of Computation

The Earth SimulatorThe 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

Page 6: The Power and the Limits of Computation

The iPod Nano

2005

Can store 4 gigabytes (1000 songs).

Cost: about $250.

Page 7: The Power and the Limits of Computation

Compute Power Increases Over Time

From Hans Moravec, Robot Mere Machine to Transcendent Mind 1998.

Page 8: The Power and the Limits of Computation

Moore’s Law

Page 9: The Power and the Limits of Computation

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?

Page 10: The Power and the Limits of Computation

The Traveling Salesman Problem

Page 11: The Power and the Limits of Computation

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.

Page 12: The Power and the Limits of Computation

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

Page 13: The Power and the Limits of Computation

The Growth Rate of n!n! = n(n-1)(n-2)…(1)

2 2 11 4790016003 6 12 62270208004 24 13 871782912005 120 14 13076743680006 720 15 209227898880007 5040 16 3556874280960008 40320 17 64023737057280009 362880 18 12164510040883200010 3628800 19 243290200817664000011 39916800 36 3.6 1041

Page 14: The Power and the Limits of Computation

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

Page 15: The Power and the Limits of Computation

The Post Correspondence Problem

i X Y1 b bbb2 babbb ba3 ba a4 bbbaa babbb

Page 16: The Power and the Limits of Computation

The Post Correspondence Problem

i X Y1 b bbb2 babbb ba3 ba a4 bbbaa babbb

2

X b a b b b

Y b a

Page 17: The Power and the Limits of Computation

The Post Correspondence Problem

i X Y1 b bbb2 babbb ba3 ba a4 bbbaa babbb

2 1

X b a b b b b

Y b a b b b

Page 18: The Power and the Limits of Computation

The Post Correspondence Problem

i X Y1 b bbb2 babbb ba3 ba a4 bbbaa babbb

2 1 1

X b a b b b b b

Y b a b b b b b b

Page 19: The Power and the Limits of Computation

The Post Correspondence Problem

i X Y1 b bbb2 babbb ba3 ba a4 bbbaa babbb

2 1 1 3

X b a b b b b b b a

Y b a b b b b b b a

Page 20: The Power and the Limits of Computation

The Post Correspondence Problem

i X Y1 10 1012 011 113 101 011

i X Y1 1101 12 0110 113 1 110

Page 21: The Power and the Limits of Computation

The Post Correspondence ProblemA 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 ….

Page 22: The Power and the Limits of Computation

The Post Correspondence ProblemA 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?

Page 23: The Power and the Limits of Computation

A Tiling Problem

Page 24: The Power and the Limits of Computation

A Tiling Problem

Page 25: The Power and the Limits of Computation

A Tiling Problem

Page 26: The Power and the Limits of Computation

A Tiling Problem

Page 27: The Power and the Limits of Computation

A Tiling Problem

Page 28: The Power and the Limits of Computation

A Tiling Problem

Page 29: The Power and the Limits of Computation

A Tiling Problem

Page 30: The Power and the Limits of Computation

A Tiling Problem

Page 31: The Power and the Limits of Computation

A Tiling Problem

Page 32: The Power and the Limits of Computation

A Tiling Problem

Page 33: The Power and the Limits of Computation

Programs Debug Programs

read nif 2*int(n/2) = n then print “even” else print “odd”

read nresult = 1for i = 2 to n do

result = result * iprint result

Given an arbitrary program, can it be guaranteed to halt?

Page 34: The Power and the Limits of Computation

A Problem That Cannot be Solved in Any Amount of Time

read nif 2*int(n/2) = n then print “even” else print “odd”

read nresult = 1for i = 2 to n do

result = result * iprint result

Given an arbitrary program, can it be guaranteed to halt?

result1

i= 2 2 i= 3 6i= 4 24i= 5 120

Page 35: The Power and the Limits of Computation

Other Kinds of Loops

result = 0count = 0until result > 100 do

read n count = count + 1 result = result+nprint count

Page 36: The Power and the Limits of Computation

Other Kinds of Loops

result = 0count = 0until result > 100 do

read n count = count + 1 result = result+nprint count

Suppose all the inputs are positive integers.

Page 37: The Power and the Limits of Computation

Other Kinds of Loops

result = 0count = 0until result > 100 do

read n count = count + 1 result = result+nprint count

Suppose some of the integers are negative.

Page 38: The Power and the Limits of Computation

The Halting Problem Is Not Solvable

Suppose that the following program existed:

Halts(program, string) returns:•True if program halts on string•False otherwise

Page 39: The Power and the Limits of Computation

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.

Page 40: The Power and the Limits of Computation

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.

Page 41: The Power and the Limits of Computation

Other Unsolvable ProblemsTiling:

•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 0001000011101000011111000000000000000010000111011000111110000000000000 …

•So if the tiling problem were solvable then Halting would be.

•But Halting isn’t. So neither is the tiling problem.