Title: The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006
1The Future of Software Andrew
HerbertMicrosoft Research Cambridge22 March
2006
2Rethinking 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
3Moores 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
- Moores observation has held for 35 years and has
sustained the personal computer industry - NB Moores Law is about transistor count, not
speed
4Moores 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
5The Intel perspective
Todays Architecture Heat becoming an
unmanageable problem!
Today's Architecture Memory access speed not
keeping up with CPU clock speeds
10,000 1,000 100 10
CPU Clock Speed
Memory Wall 90 cycles of the CPU clockto access
main memory!
Speed (MHz)
DRAM Access Speed
1990 1992 1994 1996 1998 2000 2002 2004
Intel Developer Forum, Spring 2004 - Pat Gelsinger
Modern Microprocessors - Jason Patterson
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
2004 Pat Gelsinger Chief Technology Officer,
Senior Vice President Intel Corporation February,
19, 2004
Intel Cancels Top-Speed Pentium 4 Chip Thu Oct
14, 650 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.
6Obsolete software idea 1Single-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 its
the only way to improve performance when Moores
Law runs out - Attempts to tease the parallelism out of a
sequential program automatically havent worked
out very well - We need better education, better languages and
better tools, since building concurrent programs
is hard
7Obsolete software idea 2Low-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
8Moores 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
9Obsolete 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
10Moores 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 Moores Law does not reduce latency this is
increasingly the dominant problem in systems
design
11Software Complexity
- Complexity of developing, testing and supporting
large scale software systems continues to escalate
Todays Software Development Process (Large
Projects)Only 13 of projects are on time!
Todays Software Development Process
(Medium/Large Projects)Only 18 of time spent
on coding, 35 debugging!
100 90 80 70 60 50 40 30 20 10 0
100 90 80 70 60 50 40 30 20 10 0
of Projects
of Effort by Task
100 1000 10000 100000 1M 10M
100 1000 10000 100000 1M
Lines of Code
Lines of Code
Source Capers Jones, Estimating Software Costs,
pg. 140Capers Jones, Patterns of Software
Systems Failure Success
12Obsolete software idea 4Verifying 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
13Storage
- 40GB Personal file systems
- TerraServer - 5TB
- SkyServer 40TB
14Obsolete software idea 5Hierarchical 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 dont
drown in information when we have a personal
terabyte
15Example Visual Summary
Images in a folder
Tapestry Viewer
Thumbnail Viewer - Win XP
16Displays
17Obsolete idea 6Computer 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 )?
18New 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
19Conclusions
- Hardware has evolved rapidly
- We havent 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