The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006.

19
The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006

Transcript of The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006.

Page 1: The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006.

The Future of Software

Andrew Herbert

Microsoft Research Cambridge

22 March 2006

Page 2: The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006.

Rethinking “software”

◦ In the 20th century, computer software was designed in large part to overcome hardware limitations

◦ In the 21st century, many of these limitations no longer apply. We have an abundance of computing resources

◦ This is making us rethink how to build software

Page 3: The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006.

Moore’s Law (1967)

◦ Not really a “law”, but an observation, intended to hold for “... the next few years …”

◦ (Nt/A)[t1] = (Nt/A)[t0] * 1.58t1-t0 (t in years)

◦ Nt: number of transistors; A: area

◦ Moore’s observation has held for 35 years and has sustained the personal computer industry

◦ NB Moore’s Law is about transistor count, not speed …

Page 4: The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006.

Moore’s Law for Processors

◦ More complex designs: rich instruction sets, pipelining, out of order execution, speculative execution, caching

◦ More than one processor on a chip (homogeneous multi-processor)

◦ More than one processor on a chip, with specialised functions, e.g. graphics◦ Graphics performance is improving much

faster than CPU performance

Page 5: The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006.

“… we see a very significant shift in what architectures will look like in the future ...fundamentally the way we've begun to look at doing that is to move from instruction level concurrency to … multiple cores per die. But we're going to continue to go beyond there. And that just won't be in our server lines in the future; this will permeate every architecture that we build. All will have massively multicore implementations.”

Intel Developer Forum, Spring 2004Pat GelsingerChief Technology Officer, Senior Vice PresidentIntel CorporationFebruary, 19, 2004

10,000

1,000

100

10

1

‘70 ‘80 ‘90 ‘00 ‘10

Po

wer

Den

sity

(W

/cm

2)

40048008

8080

80858086

286386

486

Pentium® processors

Hot Plate

Nuclear Reactor

Rocket Nozzle

Sun’s Surface

Intel Developer Forum, Spring 2004 - Pat Gelsinger

CPU Clock Speed

DRAM Access Speed

Today's Architecture: Memory access speed not keeping up with CPU clock speeds

Modern Microprocessors - Jason Patterson

Sp

eed

(M

Hz)

(M

Hz)

10,000

1,0001,000

100100

101019901990 19921992 19941994 19961996 19981998 20002000 20022002 20042004

CPU Clock Speed

DRAM Access Speed

Today’s Architecture: Heat becoming an unmanageable problem!

Intel Cancels Top-Speed Pentium 4 ChipThu Oct 14, 6:50 PM ET Technology - Reuters By Daniel Sorid

Intel … cancelled plans to introduce its highest-speed desktop computer chip, ending for now a 25-year run that has seen the speeds of Intel's microprocessors increase by more than 750 times.

Memory Wall~90 cycles of the CPU clock

to access main memory!

The Intel perspective …

Page 6: The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006.

Obsolete software idea 1:Single-threaded programs

◦ With uniprocessors, there is no compelling reason to try to use parallelism◦ Your program will probably run more slowly due to

thread creation, destruction and switching◦ Today, processors with multiple CPUs and a large

cache on a single chip are becoming common◦ This will be the norm in the future, since it’s the

only way to improve performance when Moore’s Law runs out

◦ Attempts to tease the parallelism out of a sequential program automatically haven’t worked out very well

◦ We need better education, better languages and better tools, since building concurrent programs is hard

Page 7: The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006.

Obsolete software idea 2:Low-level programming languages

◦ Errors in handling array and heap storage are one of the leading causes of system unreliability

◦ Switching to languages like Java and C#, which provide automatic storage management, makes many types of errors impossible

◦ Until recently, programmers argued that these languages were too expensive in space and time◦ Today, neither is an issue

◦ High level languages also allow programs that are easier to understand (and maintain)◦ This is a high cost to the industry since software evolves

Page 8: The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006.

Moore’s Law for Memory

◦ Capacity improvement: 1,000,000 X since 1970

◦ Bandwidth improvement: 100 X

◦ Latency reduction: only 10-20 X

◦ Dealing with latency is the largest problem for a computer system designer

Page 9: The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006.

Obsolete software idea 3: Virtual Memory

◦ Originally used to compensate for expensive, small main store

◦ Later extended to increase address space and to add protection◦ Today, slows systems down because

of disk◦ Providing enough real memory is

inexpensive◦ Yet all major operating systems use it

◦ Although you can turn off paging in Windows

◦ Increasing use of modern programming languages is also reducing the need for VM

Page 10: The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006.

Moore’s Law for Communications

◦ Electronics and photonics provide ever more bandwidth◦ 1.36Tb/s “femto second networks” running now in

the laboratory

◦ Wireless networking becoming ubiquitous◦ Increasing bandwidth◦ Decreasing power consumption◦ Better spectrum optimisation

◦ Everything is interconnected – and therefore more complex …

◦ NB Moore’s Law does not reduce latency – this is increasingly the dominant problem in systems design

Page 11: The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006.

Software Complexity

◦ Complexity of developing, testing and supporting large scale software systems continues to escalate

Source:Capers Jones, Estimating Software Costs, pg. 140Capers Jones, Patterns of Software Systems Failure & Success

100%100%

90%90%

80%80%

70%70%

60%60%

50%50%

40%40%

30%30%

20%20%

10%10%

0%0%100100 10001000 1000010000 100000100000 1M1M 10M10M

Today’s Software Development Process (Large Projects):Only 13% of projects are on time!

Lines of Code

% o

f P

roje

cts Early

On-time

Delayed

Cancelled

100%100%

90%90%

80%80%

70%70%

60%60%

50%50%

40%40%

30%30%

20%20%

10%10%

0%0%100100 10001000 1000010000 100000100000 1M1M

Today’s Software Development Process (Medium/Large Projects):Only 18% of time spent on coding, 35% debugging!

Lines of Code

Documentation

Support and Management

Coding

Finding & Removing Defects

% o

f E

ffo

rt b

y T

ask

Page 12: The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006.

Obsolete software idea 4:Verifying software quality by testing

◦ Testing is needed but has limits:◦ Hard to find certain types of problems (e.g.

concurrency)◦ Huge number of configurations is daunting

◦ Need more use of formal methods◦ Mathematical model of system: “specification”◦ Automated “verification” of software

implementation◦ Used to be impractical due to state space size

explosion and CPU speeds◦ Now routinely used in hardware design, where the

cost of a bug is much larger◦ Increasingly used in Microsoft development

Page 13: The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006.

Storage

◦ 40GB Personal file systems

◦ TerraServer - 5TB

◦ SkyServer – 40TB

Page 14: The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006.

Obsolete software idea 5:Hierarchical file systems

◦ Originally introduced to improve access efficiency and to give users a familiar metaphor (the office file cabinet with folders)

◦ Today, it has serious problems◦ A clean install of Windows and Office has 45,000+

files◦ The structure chosen by a person today will not be

appropriate in six months

◦ Need a new way to organise things so we don’t drown in information when we have a personal terabyte

Page 15: The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006.

Example – Visual Summary

Thumbnail Viewer - Win XP Tapestry Viewer

Images in a Images in a folderfolder

Page 16: The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006.

Displays

Page 17: The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006.

Obsolete idea 6:Computer monitors (screens) on desks

• What happens when display real estate is free?

• What happens when dynamic displays are as ubiquitous as conventional signage or whiteboards?

• What happens when displays can be as large as your wall?

• What happens when displays are as thin as your wallpaper?

• What happens if your mobile phone has an A3 display, yet retains portability?

• What happens when all of this is factored in to other trends (wireless, speed, cost …)?

Page 18: The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006.

New models of interaction

◦ Combine new display formats with machine perception◦ Handwriting, gesture – Tablet PC◦ Speech◦ Touch◦ Scanning / Recognition◦ Physical objects

◦ The future is “interactive surfaces”

Page 19: The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006.

Conclusions

◦ Hardware has evolved rapidly◦ We haven’t exploited it as well as we

should◦ Directions:

◦ Embrace concurrency◦ Everything is networked◦ Build software with high level languages ◦ Design software using formal techniques◦ Plan for “infinite” storage ◦ Interactive surfaces are the future◦ Increasing use of machine learning and

perception