System and Software Architecture - PowerPoint PPT Presentation

1 / 126
About This Presentation
Title:

System and Software Architecture

Description:

Double the bits on a chip every 18 months. Center for High Performance Software ... Chip fabrication facilities becoming too expensive. Most recent: $2 billion ... – PowerPoint PPT presentation

Number of Views:75
Avg rating:3.0/5.0
Slides: 127
Provided by: kenk172
Learn more at: https://www.cs.rice.edu
Category:

less

Transcript and Presenter's Notes

Title: System and Software Architecture


1
System and Software Architecture Managing
Complexity in Computer Systems Design and
Software Implementation Ken Kennedy Rice
University http//www.cs.rice.edu/ken/Presentati
ons/CapitalOneArchitecture.pdf
Center for High Performance Software
2
Outline
  • Computer Architecture
  • Uniprocessor
  • Parallel and distributed computer systems
  • Software Architecture
  • Layered software architectures
  • System Software
  • Operating system, file system, compilers, API
  • Software design paradigms
  • Objects, event-driven, client-server
  • Role of Research
  • PITAC Report

3
The Computer
Processor
4
The Computer
Processor
L1 Cache
On Chip
5
The Computer
Processor
L1 Cache
On Chip
L2 Cache
System Bus
Storage (RAM)
6
The Computer
Processor
L1 Cache
On Chip
L2 Cache
System Bus
Storage (RAM)
IO Interface
7
The Computer
Processor
L1 Cache
On Chip
L2 Cache
System Bus
Storage (RAM)
Network Interface
IO Interface
8
Buzzwords
  • Microprocessor
  • a single-chip computer
  • Personal computer
  • an affordable computer
  • Workstation
  • a powerful single-user computer typically used
    for engineering
  • Mainframe
  • a large multi-user computer
  • Server
  • a computer that provides "services" via a network
  • Supercomputer
  • a scientific computer of the highest possible
    performance

9
Trends in Computing
  • Moore's Law

10
Trends in Computing
  • Moore's Law
  • Memory
  • Double the bits on a chip every 18 months

11
Trends in Computing
  • Moore's Law
  • Memory
  • Double the bits on a chip every 18 months
  • Reinterpreted for CPU chips
  • double the speed at the same price, or
  • same speed at half the price

12
Trends in Computing
  • Moore's Law
  • Memory
  • Double the bits on a chip every 18 months
  • Reinterpreted for CPU chips
  • double the speed at the same price, or
  • same speed at half the price

13
Moores Law
Pentium II
Pentium
80486
80386
80286
8086
14
Trouble with Moores Law
  • Transistor count does not necessarily translate
    to speed
  • Architectural tricks are needed
  • Parallel instruction issue
  • Actual application speed doubles more slowly
  • Losses due to difficulty of exploiting
    architecture

15
Trouble with Moores Law
  • Transistor count does not necessarily translate
    to speed
  • Architectural tricks are needed
  • Parallel instruction issue
  • Actual application speed doubles more slowly
  • Losses due to difficulty of exploiting
    architecture
  • Physical limits will eventually be reached
  • Speed of light

16
Trouble with Moores Law
  • Transistor count does not necessarily translate
    to speed
  • Architectural tricks are needed
  • Parallel instruction issue
  • Actual application speed doubles more slowly
  • Losses due to difficulty of exploiting
    architecture
  • Physical limits will eventually be reached
  • Speed of light
  • Chip fabrication facilities becoming too
    expensive
  • Most recent 2 billion
  • Next 10 billion

17
Trouble with Moores Law
  • Transistor count does not necessarily translate
    to speed
  • Architectural tricks are needed
  • Parallel instruction issue
  • Actual application speed doubles more slowly
  • Losses due to difficulty of exploiting
    architecture
  • Physical limits will eventually be reached
  • Speed of light
  • Chip fabrication facilities becoming too
    expensive
  • Most recent 2 billion
  • Next 10 billion
  • We cant wait for the processing power to arrive
  • Supercomputer as time machine

18
Why We Need Powerful Computers
  • To solve bigger problems faster
  • Weather prediction
  • Aircraft design
  • Computational chemistry
  • Environmental cleanup
  • Process control
  • Responsive transaction processing
  • instantaneous response to 100 million users

19
Why We Need Powerful Computers
  • To solve bigger problems faster
  • Weather prediction
  • Aircraft design
  • Computational chemistry
  • Environmental cleanup
  • Process control
  • Responsive transaction processing
  • instantaneous response to 100 million users
  • To run more complex software
  • image processing (Adobe Photoshop)
  • video editing and delivery (Adobe Premiere)
  • animation and graphics (Pixar and LucasFilms)

20
Going Beyond Moores Law
  • Solution to limitations Architectural Change

21
Going Beyond Moores Law
  • Solution to limitations Architectural Change
  • Parallel Computing
  • Use of more than one processor for the same
    application
  • Cost programming complexity
  • Application decomposition
  • Synchronization and communication

22
Going Beyond Moores Law
  • Solution to limitations Architectural Change
  • Parallel Computing
  • Use of more than one processor for the same
    application
  • Cost programming complexity
  • Application decomposition
  • Synchronization and communication
  • Distributed Computing
  • Use of more than one computer for each
    application
  • Assigning different tasks to specialized
    facilities
  • database access, transaction processing
  • Cost more programming complexity
  • All complexity of parallelism plus
  • Security, reliability, performance guarantees,
    network traffic

23
Symmetric Multiprocessor (SMP)
Processor 1
Cache
System Bus
Storage (RAM)
Network Interface
24
Symmetric Multiprocessor (SMP)
Processor 2
Processor 1
Cache
Cache
System Bus
Storage (RAM)
Network Interface
25
Symmetric Multiprocessor (SMP)
Processor 2
Processor 1
Processor 3
Cache
Cache
Cache
System Bus
Storage (RAM)
Network Interface
26
Symmetric Multiprocessor (SMP)
Processor 2
Processor 1
Processor 3
Processor 4
Cache
Cache
Cache
Cache
System Bus
Storage (RAM)
Network Interface
27
Symmetric Multiprocessor (SMP)
Processor 2
Processor 1
Processor 3
Processor 4
Cache
Cache
Cache
Cache
System Bus
Storage (RAM)
Network Interface
Key Problem Parallel programming
28
Distributed-Memory Machines
Backplane Network
29
Distributed-Memory Machines
Processor 1
Cache
System Bus
Storage (RAM)
Network Interface
Backplane Network
30
Distributed-Memory Machines
Processor 1
Processor 2
Cache
Cache
System Bus
System Bus
Storage (RAM)
Network Interface
Storage (RAM)
Network Interface
Backplane Network
31
Distributed-Memory Machines
Processor 1
Processor 2
Cache
Cache
System Bus
System Bus
Storage (RAM)
Network Interface
Storage (RAM)
Network Interface
Backplane Network
Key Problem Data movement between memories
32
SMP Cluster
Local Area Network
33
SMP Cluster
Workstation 1
P1
P2
System Bus
Storage (RAM)
Network Interface
Local Area Network
34
SMP Cluster
Workstation 1
Workstation 2
P1
P2
P1
P2
System Bus
System Bus
Storage (RAM)
Network Interface
Storage (RAM)
Network Interface
Local Area Network
35
SMP Cluster
Workstation 1
Workstation 2
P1
P2
P1
P2
System Bus
System Bus
Storage (RAM)
Network Interface
Storage (RAM)
Network Interface
Local Area Network
Key Problem Data movement between machines
36
Distributed Computing
Local or Global Network (e.g., The Internet)
37
Distributed Computing
PC
P
Bus
RAM
NI
Local or Global Network (e.g., The Internet)
38
Distributed Computing
Workstation
PC
P
Cache
P
Bus
Bus
RAM
NI
RAM
NI
Local or Global Network (e.g., The Internet)
39
Distributed Computing
SMP Server
Workstation
P1
P2
PC
P
Cache
Cache
Cache
P
System Bus
Bus
Bus
Storage (RAM)
Network Interface
RAM
NI
RAM
NI
Local or Global Network (e.g., The Internet)
40
Distributed Computing
SMP Server
Workstation
P1
P2
PC
P
Cache
Cache
Cache
P
System Bus
Bus
Bus
Storage (RAM)
Network Interface
RAM
NI
RAM
NI
Local or Global Network (e.g., The Internet)
Key Problem Division of Labor
41
The Problem Programming
  • Programming is Hard
  • Programmer must manage
  • creation of parallel work
  • synchronization at completion
  • communication of results
  • debugging and performance tuning
  • mapping to different machines

42
The Problem Programming
  • Programming is Hard
  • Programmer must manage
  • creation of parallel work
  • synchronization at completion
  • communication of results
  • debugging and performance tuning
  • mapping to different machines
  • Automatic parallelization does not work!

43
The Problem Programming
  • Programming is Hard
  • Programmer must manage
  • creation of parallel work
  • synchronization at completion
  • communication of results
  • debugging and performance tuning
  • mapping to different machines
  • Automatic parallelization does not work!
  • Sequential Algorithms Usually Do Not Work

44
The Problem Programming
  • Programming is Hard
  • Programmer must manage
  • creation of parallel work
  • synchronization at completion
  • communication of results
  • debugging and performance tuning
  • mapping to different machines
  • Automatic parallelization does not work!
  • Sequential Algorithms Usually Do Not Work
  • Example take the maximum of a set of numbers
  • each processor takes maximum of a subset
  • how do we find the maximum of all the subset
    maxima?

45
Example Parallel Maximum
8
5
2
3
1
6
9
7
46
Example Parallel Maximum
8
5
9
7
8
5
2
3
1
6
9
7
47
Example Parallel Maximum
8
9
8
5
9
7
8
5
2
3
1
6
9
7
48
Example Parallel Maximum
9
8
9
8
5
9
7
8
5
2
3
1
6
9
7
49
Software
  • Key Challenge Managing Complexity

50
Software
  • Key Challenge Managing Complexity
  • Complexity of problems
  • Modern applications have many different components

51
Software
  • Key Challenge Managing Complexity
  • Complexity of problems
  • Modern applications have many different
    components
  • Complexity of computing platforms
  • Parallel, distributed, networked

52
Software
  • Key Challenge Managing Complexity
  • Complexity of problems
  • Modern applications have many different
    components
  • Complexity of computing platforms
  • Parallel, distributed, networked
  • Solutions
  • Layered abstractions
  • Objects
  • Software service layers

53
Software
  • Key Challenge Managing Complexity
  • Complexity of problems
  • Modern applications have many different
    components
  • Complexity of computing platforms
  • Parallel, distributed, networked
  • Solutions
  • Layered abstractions
  • Objects
  • Software service layers
  • Composition of systems from components
  • Independence from platform location
  • Seamless integration

54
Software Layering
Machine
Level 0
55
Software Layering
Level 1 Virtual Machine
Level 1
Machine
Level 0
56
Software Layering
Level 2 Virtual Machine
Level 2
Level 1 Virtual Machine
Level 1
Machine
Level 0
57
Software Layering
Level 3 Virtual Machine
Level 3
Level 2 Virtual Machine
Level 2
Level 1 Virtual Machine
Level 1
Machine
Level 0
58
Software Layering
Level 4 Virtual Machine
Level 4
Level 3 Virtual Machine
Level 3
Level 2 Virtual Machine
Level 2
Level 1 Virtual Machine
Level 1
Machine
Level 0
59
Implementation of Virtual Machines
  • Interpretation
  • Commands of one layer are implemented in terms of
    the commands of the layer on which it is built
  • Advantages simplicity, dynamic error detection
  • Disadvantage performance

60
Implementation of Virtual Machines
  • Interpretation
  • Commands of one layer are implemented in terms of
    the commands of the layer on which it is built
  • Advantages simplicity, dynamic error detection
  • Disadvantage performance
  • Translation
  • Commands of one layer are rewritten directly as
    commands of the layer below
  • By a preprocesor (Compiler)
  • Advantages performance and preliminary error
    checking
  • Compiler checks program for inconsistencies,
    optimizes
  • Disadvantage requires implementation of complex
    translator

61
Layering in Basic System Software
Level 4
Level 3
Level 2
Level 1
Machine
Level 0
62
Layering in Basic System Software
Level 4
Level 3
Level 2
Level 1
Operating System Machine
Partial Interpretation (OS)
Machine
Level 0
63
Layering in Basic System Software
Level 4
Level 3
Level 2
Assembly Language Level
Translation (assembler)
Level 1
Operating System Machine
Partial Interpretation (OS)
Machine
Level 0
64
Layering in Basic System Software
Level 4
Programming Language Level
Level 3
Translation (compiler)
Level 2
Assembly Language Level
Translation (assembler)
Level 1
Operating System Machine
Partial Interpretation (OS)
Machine
Level 0
65
Layering in Basic System Software
Command-Driven Application
Level 4
Interpretation
Level 3 Virtual Machine
Level 3
Programming Language Level
Translation (compiler)
Level 2 Virtual Machine
Level 2
Assembly Language Level
Translation (assembler)
Level 1 Virtual Machine
Level 1
Operating System Machine
Partial Interpretation (OS)
Machine
Level 0
66
Layering in Networks
Basic Network Services bitways, point-to-point
packet transfer
67
Layering in Networks
Middleware routing, file transfer, quality of
service
Basic Network Services bitways, point-to-point
packet transfer
68
Layering in Networks
Application e.g., World-Wide-Web
Middleware routing, file transfer, quality of
service
Basic Network Services bitways, point-to-point
packet transfer
69
Standard Computer System Layers
Computer Hardware
70
Standard Computer System Layers
Operating System
Computer Hardware
71
Standard Computer System Layers
Operating System
File System
Computer Hardware
72
Standard Computer System Layers
System Service Libraries (API)
Operating System
File System
Computer Hardware
73
Standard Computer System Layers
System Service Libraries (API)
Middle- ware
Operating System
File System
Computer Hardware
74
Standard Computer System Layers
High-Level Language
System Service Libraries (API)
Middle- ware
Operating System
File System
Computer Hardware
75
Standard Computer System Layers
High-Level Language
User Libraries
System Service Libraries (API)
Middle- ware
Operating System
File System
Computer Hardware
76
Standard Computer System Layers
Application
High-Level Language
User Libraries
System Service Libraries (API)
Middle- ware
Operating System
File System
Computer Hardware
77
Object
  • Abstract Software Component
  • Replaces older concepts data and subroutines

78
Object
  • Abstract Software Component
  • Replaces older concepts data and subroutines
  • Encapsulates Behaviors
  • All interactions via methods
  • E.g., create, destroy, display, modify
  • Class Objects with common behaviors

79
Object
  • Abstract Software Component
  • Replaces older concepts data and subroutines
  • Encapsulates Behaviors
  • All interactions via methods
  • E.g., create, destroy, display, modify
  • Class Objects with common behaviors

80
Objects
  • Abstract Software Component
  • Replaces older concepts data and subroutines
  • Encapsulates Behaviors
  • All interactions via methods
  • E.g., create, destroy, display, modify
  • Class Objects with common behaviors

Example Screen Window createWindow
destroyWindow writeTextInWindow
redisplayWindow resizeWindow
81
Parallelism versus Multithreading
  • Multithreading
  • Task broken down into collaborating threads that
    can run in parallel
  • Example
  • Key strategy synchronization

82
Parallelism versus Multithreading
  • Multithreading
  • Task broken down into collaborating threads that
    can run in parallel
  • Example
  • Key strategy synchronization
  • Multiprogramming
  • Multiple threads run on a single processor
  • Each makes progress
  • Key strategy
  • Time slicing in the OS

83
Parallelism versus Multithreading
  • Multithreading
  • Task broken down into collaborating threads that
    can run in parallel
  • Example
  • Key strategy synchronization
  • Multiprogramming
  • Multiple threads run on a single processor
  • Each makes progress
  • Key strategy
  • Time slicing in the OS
  • Multiprocessing
  • Multiple processors available to run threads in
    parallel
  • Key strategies
  • Processor scheduling and resource allocation

84
Client-Server Computing
  • Division of Labor in an Application

85
Client-Server Computing
  • Division of Labor in an Application
  • Server
  • Provides services and access to shared data
    needed by all clients
  • Runs on high-performance computer

86
Client-Server Computing
  • Division of Labor in an Application
  • Server
  • Provides services and access to shared data
    needed by all clients
  • Runs on high-performance computer
  • Client
  • Performs tasks unique to local problem-solving
    need
  • Runs on PC or workstation

87
Client-Server Computing
  • Division of Labor in an Application
  • Server
  • Provides services and access to shared data
    needed by all clients
  • Runs on high-performance computer
  • Client
  • Performs tasks unique to local problem-solving
    need
  • Runs on PC or workstation
  • Collaboration over Network

88
Client-Server Computing
  • Division of Labor in an Application
  • Server
  • Provides services and access to shared data
    needed by all clients
  • Runs on high-performance computer
  • Client
  • Performs tasks unique to local problem-solving
    need
  • Runs on PC or workstation
  • Collaboration over Network
  • Example World Wide Web

89
Client-Server Computing
  • Division of Labor in an Application
  • Server
  • Provides services and access to shared data
    needed by all clients
  • Runs on high-performance computer
  • Client
  • Performs tasks unique to local problem-solving
    need
  • Runs on PC or workstation
  • Collaboration over Network
  • Example World Wide Web
  • Server translates URL into data location,
    delivers HTML

90
Client-Server Computing
  • Division of Labor in an Application
  • Server
  • Provides services and access to shared data
    needed by all clients
  • Runs on high-performance computer
  • Client
  • Performs tasks unique to local problem-solving
    need
  • Runs on PC or workstation
  • Collaboration over Network
  • Example World Wide Web
  • Server translates URL into data location,
    delivers HTML
  • Client browser formats web page for screen
    display, translates link accesses to URLs for
    delivery to server.

91
Batch Versus Event-Driven Processing
  • Batch Processing
  • Transactions collect and are processed together
    at regular intervals

92
Batch Versus Event-Driven Processing
  • Batch Processing
  • Transactions collect and are processed together
    at regular intervals
  • Example Payroll
  • Transactions are processed once each pay period
    in a single run
  • Principal strategy Sorting

93
Batch Versus Event-Driven Processing
  • Batch Processing
  • Transactions collect and are processed together
    at regular intervals
  • Example Payroll
  • Transactions are processed once each pay period
    in a single run
  • Principal strategy Sorting
  • Event Driven (Real-Time) Processing
  • Transactions are processed immediately on receipt

94
Batch Versus Event-Driven Processing
  • Batch Processing
  • Transactions collect and are processed together
    at regular intervals
  • Example Payroll
  • Transactions are processed once each pay period
    in a single run
  • Principal strategy Sorting
  • Event Driven (Real-Time) Processing
  • Transactions are processed immediately on receipt
  • Example Airline reservations
  • Transaction confirmed during reservation session

95
Batch Versus Event-Driven Processing
  • Batch Processing
  • Transactions collect and are processed together
    at regular intervals
  • Example Payroll
  • Transactions are processed once each pay period
    in a single run
  • Principal strategy Sorting
  • Event Driven (Real-Time) Processing
  • Transactions are processed immediately on receipt
  • Example Airline reservations
  • Transaction confirmed during reservation session
  • Key strategies
  • Data organization for rapid access to single
    elements (BTrees)
  • Mechanisms to ensure data integrity
  • locking, two-phase commit, rollback

96
Software Architecture
  • Middleware
  • Software layers intended to provide services to
    many applications
  • Typically system software and network services

97
Software Architecture
  • Middleware
  • Software layers intended to provide services to
    many applications
  • Typically system software and network services
  • Reuse

98
Software Architecture
  • Middleware
  • Software layers intended to provide services to
    many applications
  • Typically system software and network services
  • Reuse
  • Component Reuse in Software Engineering
  • Components that can be incorporated in many
    applications

99
Software Architecture
  • Middleware
  • Software layers intended to provide services to
    many applications
  • Typically system software and network services
  • Reuse
  • Component Reuse in Software Engineering
  • Components that can be incorporated in many
    applications
  • Design Reuse in Software Architecture

100
Software Architecture
  • Middleware
  • Software layers intended to provide services to
    many applications
  • Typically system software and network services
  • Reuse
  • Component Reuse in Software Engineering
  • Components that can be incorporated in many
    applications
  • Design Reuse in Software Architecture
  • Applications designed in layers (with
    collaborating components)
  • Basic computational engine, application
    middleware, domain-specific logic, presentation

101
Software Architecture
  • Middleware
  • Software layers intended to provide services to
    many applications
  • Typically system software and network services
  • Reuse
  • Component Reuse in Software Engineering
  • Components that can be incorporated in many
    applications
  • Design Reuse in Software Architecture
  • Applications designed in layers (with
    collaborating components)
  • Basic computational engine, application
    middleware, domain-specific logic, presentation
  • Example of application middleware
  • Implementation of transaction on top of data
    base engine

102
Example A Reservation System
Data Base Engine
64-Processor Distributed-Memory System
103
Example A Reservation System
Flights and Seats
Data Base Engine
64-Processor Distributed-Memory System
104
Example A Reservation System
Reservations
Flights and Seats
Data Base Engine
64-Processor Distributed-Memory System
105
Example A Reservation System
Call-Handling Computer System
Reservations
Flights and Seats
Data Base Engine
16-processor SMP
64-Processor Distributed-Memory System
106
Example A Reservation System
Call-Handling Computer System
Reservations
Travel Agent Worstation
Flights and Seats
Data Base Engine
PC
16-processor SMP
64-Processor Distributed-Memory System
107
Importance of Standards
  • Complex software
  • Consists of many different components running on
    different machines
  • Challenge management of incompatibilities

108
Importance of Standards
  • Complex software
  • Consists of many different components running on
    different machines
  • Challenge management of incompatibilities
  • Standards A Critical Complexity Management
    Strategy

109
Importance of Standards
  • Complex software
  • Consists of many different components running on
    different machines
  • Challenge management of incompatibilities
  • Standards A Critical Complexity Management
    Strategy
  • Examples
  • Cross-processor object management CORBA and DCOM

110
Importance of Standards
  • Complex software
  • Consists of many different components running on
    different machines
  • Challenge management of incompatibilities
  • Standards A Critical Complexity Management
    Strategy
  • Examples
  • Cross-processor object management CORBA and DCOM
  • Database interfaces SQL

111
Importance of Standards
  • Complex software
  • Consists of many different components running on
    different machines
  • Challenge management of incompatibilities
  • Standards A Critical Complexity Management
    Strategy
  • Examples
  • Cross-processor object management CORBA and DCOM
  • Database interfaces SQL
  • User interface X Windows

112
Importance of Standards
  • Complex software
  • Consists of many different components running on
    different machines
  • Challenge management of incompatibilities
  • Standards A Critical Complexity Management
    Strategy
  • Examples
  • Cross-processor object management CORBA and DCOM
  • Database interfaces SQL
  • User interface X Windows
  • Graphics OpenGL

113
Importance of Standards
  • Complex software
  • Consists of many different components running on
    different machines
  • Challenge management of incompatibilities
  • Standards A Critical Complexity Management
    Strategy
  • Examples
  • Cross-processor object management CORBA and DCOM
  • Database interfaces SQL
  • User interface X Windows
  • Graphics OpenGL
  • Programming language C and Fortran

114
Importance of Standards
  • Complex software
  • Consists of many different components running on
    different machines
  • Challenge management of incompatibilities
  • Standards A Critical Complexity Management
    Strategy
  • Examples
  • Cross-processor object management CORBA and DCOM
  • Database interfaces SQL
  • User interface X Windows
  • Graphics OpenGL
  • Programming language C and Fortran
  • Execution environment Java and Java Virtual
    Machine

115
Importance of Standards
  • Complex software
  • Consists of many different components running on
    different machines
  • Challenge management of incompatibilities
  • Standards A Critical Complexity Management
    Strategy
  • Examples
  • Cross-processor object management CORBA and DCOM
  • Database interfaces SQL
  • User interface X Windows
  • Graphics OpenGL
  • Programming language C and Fortran
  • Execution environment Java and Java Virtual
    Machine
  • Data representation IEEE Floating Point

116
Conclusions
  • Computing platforms are growing ever more complex
  • Powerful but complex microprocessors
  • Parallel and distributed computing
  • Hand-held devices and embedded processors
  • Software is growing more complicated
  • Parallel programming
  • Distributed applications
  • Event-driven processing
  • Strategies for management of complexity are
    essential
  • Layered design (incremental abstraction)
  • Objects
  • Reuse
  • Standard interfaces

117
Information Technology Research Investing in
Our Future President's Information Technology
Advisory Committee Report to the President Ken
Kennedy PITAC Co-Chair http//www.cs.rice.edu/k
en/Presentations/PITAC.pdf
Presidents Information Technology Advisory
Committee
118
Charter
  • The Committee shall provide an independent
    assessment of
  • Progress made in implementing the
    High-Performance Computing and Communications
    (HPCC) Program
  • Progress in designing and implementing the Next
    Generation Internet initiative
  • The need to revise the HPCC Program
  • Balance among components of the HPCC Program
  • Whether the research and development undertaken
    pursuant to the HPCC Program is helping to
    maintain United States leadership in advanced
    computing and communications technologies and
    their applications
  • Other issues as specified by the Director of the
    Office of Science and Technology.
  • Review of the entire IT investment strategy is
    it meeting the nations needs

119
Committee Membership
  • Co-Chairs
  • Bill Joy, Sun Microsystems Ken Kennedy, Rice
  • Members
  • Eric Benhamou, 3Com Vinton Cerf, MCI
  • Ching-chih Chen, Simmons David Cooper, LLNL
  • Steve Dorfman, Hughes David Dorman, PointCast
  • Bob Ewald, SGI David Farber, Penn
  • Sherri Fuller, U of Washington Hector
    Garcia-Molina, Stanford
  • Susan Graham, UC Berkeley Jim Gray, Microsoft
  • Danny Hillis, Disney, Inc Robert Kahn, CNRI
  • John Miller, Montana State David Nagel, ATT
  • Raj Reddy, Carnegie Mellon Ted Shortliffe,
    Stanford
  • Larry Smarr, UIUC Joe Thompson, Miss. State
  • Les Vadasz, Intel Andy Viterbi, Qualcomm
  • Steve Wallach, Centerpoint Irving
    Wladawsky-Berger, IBM

120
Methodology
  • Evaluation of Federal Research Investment
    Portfolio
  • Plans reviewed for each of the major areas
  • High End Computing and Computation
  • Large Scale Networking
  • Human Centered Computer Systems
  • High Confidence Systems
  • Education, Training, and Human Resources
  • Review of Balance in Federal Research Portfolio
  • Fundamental versus Applied
  • Based on our own definition of these terms
  • High-Risk versus Low-Risk
  • Long-Term versus Short-Term

121
Principal Finding
  • Drift Away from Long-Term Fundamental Research
  • Agencies pressed by the growth of IT needs
  • IT RD budgets have grown steadily but not
    dramatically
  • IT industry has accounted for over 30 percent of
    the real GDP growth over the past five years, but
    gets only 1 out of 75 Federal RD dollars
  • Problems solved by IT are critical to the
    nationengineering design, health and medicine,
    defense

122
Principal Finding
  • Drift Away from Long-Term Fundamental Research
  • Agencies pressed by the growth of IT needs
  • IT RD budgets have grown steadily but not
    dramatically
  • IT industry has accounted for over 30 percent of
    the real GDP growth over the past five years, but
    gets only 1 out of 75 Federal RD dollars
  • Problems solved by IT are critical to the
    nationengineering design, health and medicine,
    defense
  • Most IT RD agencies are mission-oriented
  • Natural and correct to favor the short-term needs
    of the mission

123
Principal Finding
  • Drift Away from Long-Term Fundamental Research
  • Agencies pressed by the growth of IT needs
  • IT RD budgets have grown steadily but not
    dramatically
  • IT industry has accounted for over 30 percent of
    the real GDP growth over the past five years, but
    gets only 1 out of 75 Federal RD dollars
  • Problems solved by IT are critical to the
    nationengineering design, health and medicine,
    defense
  • Most IT RD agencies are mission-oriented
  • Natural and correct to favor the short-term needs
    of the mission
  • This Trend Must Be Reversed
  • Continue the flow of ideas to fuel the
    information economy and society

124
Remedy
  • Increase the Federal IT RD Investment by 1.4
    billion dollars per year
  • Ramp up over five years
  • Focus on increasing fundamental research

125
Remedy
  • Increase the Federal IT RD Investment by 1.4
    billion dollars per year
  • Ramp up over five years
  • Focus on increasing fundamental research
  • Invest in Key Areas Needing Attention
  • Software
  • Scalable Information Infrastructure
  • High-End Computing
  • Social, Economic, and Workforce Issues
  • Reinvigorate Colleges and Universities

126
Remedy
  • Increase the Federal IT RD Investment by 1.4
    billion dollars per year
  • Ramp up over five years
  • Focus on increasing fundamental research
  • Invest in Key Areas Needing Attention
  • Software
  • Scalable Information Infrastructure
  • High-End Computing
  • Social, Economic, and Workforce Issues
  • Reinvigorate Colleges and Universities
  • Develop a Coherent Management Strategy
  • Establish clear organizational responsibilities
  • Diversify modes of support
Write a Comment
User Comments (0)
About PowerShow.com