The Future of Software Andrew Herbert Microsoft Research Cambridge 22 March 2006 - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

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

Description:

... highest-speed desktop computer chip, ... What happens when display real estate is free? ... What happens when displays are as thin as your wallpaper? ... – PowerPoint PPT presentation

Number of Views:40
Avg rating:3.0/5.0
Slides: 20
Provided by: andrewh71
Category:

less

Transcript and Presenter's Notes

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


1
The Future of Software Andrew
HerbertMicrosoft Research Cambridge22 March
2006
2
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

3
Moores 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

4
Moores 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

5
The 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.
6
Obsolete 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

7
Obsolete 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

8
Moores 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

9
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

10
Moores 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

11
Software 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
12
Obsolete 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

13
Storage
  • 40GB Personal file systems
  • TerraServer - 5TB
  • SkyServer 40TB

14
Obsolete 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

15
Example Visual Summary
Images in a folder
Tapestry Viewer
Thumbnail Viewer - Win XP
16
Displays
17
Obsolete 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 )?

18
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

19
Conclusions
  • 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
Write a Comment
User Comments (0)
About PowerShow.com