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
2Outline
- 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
3The Computer
Processor
4The Computer
Processor
L1 Cache
On Chip
5The Computer
Processor
L1 Cache
On Chip
L2 Cache
System Bus
Storage (RAM)
6The Computer
Processor
L1 Cache
On Chip
L2 Cache
System Bus
Storage (RAM)
IO Interface
7The Computer
Processor
L1 Cache
On Chip
L2 Cache
System Bus
Storage (RAM)
Network Interface
IO Interface
8Buzzwords
- 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
9Trends in Computing
10Trends in Computing
- Moore's Law
- Memory
- Double the bits on a chip every 18 months
11Trends 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
12Trends 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
13Moores Law
Pentium II
Pentium
80486
80386
80286
8086
14Trouble 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
15Trouble 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
16Trouble 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
17Trouble 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
18Why 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
19Why 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)
20Going Beyond Moores Law
- Solution to limitations Architectural Change
21Going 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
22Going 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
23Symmetric Multiprocessor (SMP)
Processor 1
Cache
System Bus
Storage (RAM)
Network Interface
24Symmetric Multiprocessor (SMP)
Processor 2
Processor 1
Cache
Cache
System Bus
Storage (RAM)
Network Interface
25Symmetric Multiprocessor (SMP)
Processor 2
Processor 1
Processor 3
Cache
Cache
Cache
System Bus
Storage (RAM)
Network Interface
26Symmetric Multiprocessor (SMP)
Processor 2
Processor 1
Processor 3
Processor 4
Cache
Cache
Cache
Cache
System Bus
Storage (RAM)
Network Interface
27Symmetric Multiprocessor (SMP)
Processor 2
Processor 1
Processor 3
Processor 4
Cache
Cache
Cache
Cache
System Bus
Storage (RAM)
Network Interface
Key Problem Parallel programming
28Distributed-Memory Machines
Backplane Network
29Distributed-Memory Machines
Processor 1
Cache
System Bus
Storage (RAM)
Network Interface
Backplane Network
30Distributed-Memory Machines
Processor 1
Processor 2
Cache
Cache
System Bus
System Bus
Storage (RAM)
Network Interface
Storage (RAM)
Network Interface
Backplane Network
31Distributed-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
32SMP Cluster
Local Area Network
33SMP Cluster
Workstation 1
P1
P2
System Bus
Storage (RAM)
Network Interface
Local Area Network
34SMP Cluster
Workstation 1
Workstation 2
P1
P2
P1
P2
System Bus
System Bus
Storage (RAM)
Network Interface
Storage (RAM)
Network Interface
Local Area Network
35SMP 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
36Distributed Computing
Local or Global Network (e.g., The Internet)
37Distributed Computing
PC
P
Bus
RAM
NI
Local or Global Network (e.g., The Internet)
38Distributed Computing
Workstation
PC
P
Cache
P
Bus
Bus
RAM
NI
RAM
NI
Local or Global Network (e.g., The Internet)
39Distributed 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)
40Distributed 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
41The 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
42The 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!
43The 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
44The 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?
45Example Parallel Maximum
8
5
2
3
1
6
9
7
46Example Parallel Maximum
8
5
9
7
8
5
2
3
1
6
9
7
47Example Parallel Maximum
8
9
8
5
9
7
8
5
2
3
1
6
9
7
48Example Parallel Maximum
9
8
9
8
5
9
7
8
5
2
3
1
6
9
7
49Software
- Key Challenge Managing Complexity
50Software
- Key Challenge Managing Complexity
- Complexity of problems
- Modern applications have many different components
51Software
- Key Challenge Managing Complexity
- Complexity of problems
- Modern applications have many different
components - Complexity of computing platforms
- Parallel, distributed, networked
52Software
- 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
53Software
- 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
54Software Layering
Machine
Level 0
55Software Layering
Level 1 Virtual Machine
Level 1
Machine
Level 0
56Software Layering
Level 2 Virtual Machine
Level 2
Level 1 Virtual Machine
Level 1
Machine
Level 0
57Software Layering
Level 3 Virtual Machine
Level 3
Level 2 Virtual Machine
Level 2
Level 1 Virtual Machine
Level 1
Machine
Level 0
58Software 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
59Implementation 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
60Implementation 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
61Layering in Basic System Software
Level 4
Level 3
Level 2
Level 1
Machine
Level 0
62Layering in Basic System Software
Level 4
Level 3
Level 2
Level 1
Operating System Machine
Partial Interpretation (OS)
Machine
Level 0
63Layering 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
64Layering 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
65Layering 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
66Layering in Networks
Basic Network Services bitways, point-to-point
packet transfer
67Layering in Networks
Middleware routing, file transfer, quality of
service
Basic Network Services bitways, point-to-point
packet transfer
68Layering in Networks
Application e.g., World-Wide-Web
Middleware routing, file transfer, quality of
service
Basic Network Services bitways, point-to-point
packet transfer
69Standard Computer System Layers
Computer Hardware
70Standard Computer System Layers
Operating System
Computer Hardware
71Standard Computer System Layers
Operating System
File System
Computer Hardware
72Standard Computer System Layers
System Service Libraries (API)
Operating System
File System
Computer Hardware
73Standard Computer System Layers
System Service Libraries (API)
Middle- ware
Operating System
File System
Computer Hardware
74Standard Computer System Layers
High-Level Language
System Service Libraries (API)
Middle- ware
Operating System
File System
Computer Hardware
75Standard Computer System Layers
High-Level Language
User Libraries
System Service Libraries (API)
Middle- ware
Operating System
File System
Computer Hardware
76Standard Computer System Layers
Application
High-Level Language
User Libraries
System Service Libraries (API)
Middle- ware
Operating System
File System
Computer Hardware
77Object
- Abstract Software Component
- Replaces older concepts data and subroutines
78Object
- 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
79Object
- 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
80Objects
- 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
81Parallelism versus Multithreading
- Multithreading
- Task broken down into collaborating threads that
can run in parallel - Example
- Key strategy synchronization
82Parallelism 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
83Parallelism 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
84Client-Server Computing
- Division of Labor in an Application
85Client-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
86Client-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
87Client-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
88Client-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
89Client-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
90Client-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.
91Batch Versus Event-Driven Processing
- Batch Processing
- Transactions collect and are processed together
at regular intervals
92Batch 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
93Batch 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
94Batch 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
95Batch 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
96Software Architecture
- Middleware
- Software layers intended to provide services to
many applications - Typically system software and network services
97Software Architecture
- Middleware
- Software layers intended to provide services to
many applications - Typically system software and network services
- Reuse
98Software 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
99Software 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
100Software 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
101Software 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
102Example A Reservation System
Data Base Engine
64-Processor Distributed-Memory System
103Example A Reservation System
Flights and Seats
Data Base Engine
64-Processor Distributed-Memory System
104Example A Reservation System
Reservations
Flights and Seats
Data Base Engine
64-Processor Distributed-Memory System
105Example A Reservation System
Call-Handling Computer System
Reservations
Flights and Seats
Data Base Engine
16-processor SMP
64-Processor Distributed-Memory System
106Example 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
107Importance of Standards
- Complex software
- Consists of many different components running on
different machines - Challenge management of incompatibilities
108Importance of Standards
- Complex software
- Consists of many different components running on
different machines - Challenge management of incompatibilities
- Standards A Critical Complexity Management
Strategy
109Importance 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
110Importance 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
111Importance 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
112Importance 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
113Importance 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
114Importance 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
115Importance 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
116Conclusions
- 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
118Charter
- 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
119Committee 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
120Methodology
- 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
121Principal 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
122Principal 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
123Principal 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
124Remedy
- Increase the Federal IT RD Investment by 1.4
billion dollars per year - Ramp up over five years
- Focus on increasing fundamental research
125Remedy
- 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
126Remedy
- 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