1 cs 501 spring 2002 cs 501: software engineering lecture 19 performance of computer systems

30
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 19 Performance of Computer Systems

Post on 19-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

1 CS 501 Spring 2002

CS 501: Software Engineering

Lecture 19

Performance of Computer Systems

2 CS 501 Spring 2002

Administration

Quiz 3

Collect after class.

Final presentations

Sign up now.

Available time slots are on the web site.

3 CS 501 Spring 2002

Performance of Computer Systems

In most computer systems

The cost of people is much greater than the cost of hardware

Yet performance is important

Future loads may be much greater than predicted

A single bottleneck can slow down an entire system

4 CS 501 Spring 2002

Moore's Law

Original version:

The density of transistors in an integrated circuit will double every year. (Gordon Moore, Intel, 1965)

Current version:

Cost/performance of silicon chips doubles every 18 months.

5 CS 501 Spring 2002

Moore's Law and System Design

Design system: 2002

Production use: 2005

Withdrawn from production: 2015

Processor speeds: 1 1.9 28

Memory sizes: 1 1.9 28

Disk capacity: 1 2.2 51

System cost: 1 0.4 0.01

6 CS 501 Spring 2002

Moore's Law: Rules of Thumb

Planning assumptions:

Every year: cost/performance of silicon chips improves 25% cost/performance of magnetic media improves 30%

10 years = 100:120 years = 10,000:1

7 CS 501 Spring 2002

Parkinson's Law

Original: Work expands to fill the time available. (C. Northcote Parkinson)

Planning assumptions:

(a) Demand will expand to use all the hardware available.

(b) Low prices will create new demands.

(c) Your software will be used on equipment that you have not envisioned.

8 CS 501 Spring 2002

False Assumptions

Unix file system will never exceed 2 Gbytes (232 bytes).

AppleTalk networks will never have more than 256 hosts (28 bits).

GPS software will not last 1024 weeks.

Nobody at Dartmouth will ever earn more than $10,000 per month.

etc., etc., .....

9 CS 501 Spring 2002

Moore's Law and the Long Term

1965 When?

What level?

2000?

Within your working life?

10 CS 501 Spring 2002

Predicting System Performance

• Mathematical models

• Simulation

• Direct measurement

• Rules of thumb

All require detailed understanding of the interaction between software and systems.

11 CS 501 Spring 2002

Understand the Interactions between Hardware and Software

:Thread :Toolkit :ComponentPeer target:HelloWorld

runrun callbackLoop

handleExpose

paint

12 CS 501 Spring 2002

Decompress

Stream audioStream video

fork

join

start state

stop state

Understand Interactions between Hardware and Software

13 CS 501 Spring 2002

Look for Bottlenecks

Possible areas of congestion

Network load

Database access

how many joins to build a record?

Locks and sequential processing

CPU performance is rarely a factor, except in mathematical algorithms. More likely bottlenecks are:

Reading data from disk

Moving data from memory to CPU.

14 CS 501 Spring 2002

Look for Bottlenecks: Utilization

utilization =

mean service timemean inter-arrival time

When the utilization of any hardware component exceeds 30%, be prepared for congestion.

15 CS 501 Spring 2002

Techniques for Eliminating Bottlenecks

Serial and Parallel Processing

Single thread v. multi-thread

e.g., Unix fork

Granularity of locks on data

e.g., record locking

Network congestion

e.g., back-off algorithms

16 CS 501 Spring 2002

Mathematical Models: Queues

arrive wait in line service depart

Single server queue

17 CS 501 Spring 2002

Queues

arrive wait in line

service

depart

Multi-server queue

18 CS 501 Spring 2002

Mathematical Models

Queueing theory

Good estimates of congestion can be made for single-server queues with:

• arrivals that are independent, random events (Poisson process)

• service times that follow families of distributions (e.g., negative exponential, gamma)

Many of the results can be extended to multi-server queues.

19 CS 501 Spring 2002

Behavior of Queues: Utilization

meandelay

utilization10

20 CS 501 Spring 2002

Simulation

Model the system as set of states and events

advance simulated time determine which events occurred update state and event listrepeat

Discrete time simulation: Time is advanced in fixed steps (e.g., 1 millisecond)

Next event simulation: Time is advanced to next event

Events can be simulated by random variables (e.g., arrival of next customer, completion of disk latency)

21 CS 501 Spring 2002

Timescale

Operations per second

CPU instruction: 400,000,000

Disk latency: 60 read: 25,000,000 bytes

Network LAN: 10,000,000 bytesdial-up modem: 6,000 bytes

22 CS 501 Spring 2002

Measurements on Operational Systems

• Benchmarks: Run system on standard problem sets, sample inputs, or a simulated load on the system.

• Instrumentation: Clock specific events.

If you have any doubt about the performance of part

of a system, experiment with a simulated load.

23 CS 501 Spring 2002

Example: Performance of Disk Array

Each transaction must:

wait for specific disk platter

wait for I/O channel

signal to move heads on disk platter

wait for I/O channel

pause for disk rotation

read data

Close agreement between: results from queuing theory, simulation, and direct measurement (within 15%).

24 CS 501 Spring 2002

Discussion of Pfleeger, Chapter 7

Format:

State a question.

Ask a member of the class to answer.

(Sorry if I pronounce your name wrongly.)

Provide opportunity for others to comment.

When answering:

Stand up.Give your name or NetID. Make sure the TA hears it.

Speak clearly so that all the class can hear.

25 CS 501 Spring 2002

Question 1: Documentation Standards

(a) What is the purpose of standard documentation?

(b) Who should create the documentation standards?

(c) What documentation standards are you following in your project? (Be honest!)

26 CS 501 Spring 2002

Question 2: Good Programming

You are judging a Good Programmer Competition.

(a) Give four criteria for what constitutes good programming style.

(b) Give four additional criteria for what constitutes a good programmer.

(c) What is the most flattering thing that you can say about a programmer?

27 CS 501 Spring 2002

Question 3: Maintenance

Most production programs are maintained by people other than the programmers who originally wrote them.

(a) What factors make a program easy for somebody else to maintain?

(b) What factors make a program hard for somebody else to maintain?

28 CS 501 Spring 2002

Question 4: Documentation Standards

(a) What is the purpose of standard documentation?

(b) Who should create the documentation standards?

(c) What documentation standards are you following in your project? (Be honest!)

29 CS 501 Spring 2002

Question 5: Data Structures

(a) How should you decide what data structures to use in a program?

(b) What can you do in designing data structures to help the people who will maintain your programs?

(c) What should you do about the performance of algorithms that create and work on your data structures?

30 CS 501 Spring 2002

Question 6: Risks

(a) What are the main risks in writing programs?

(b) How can you minimize these risks?