CS 360 Lecture 11.  In most computer systems:  The cost of people (development) is much greater than the cost of hardware  Yet, performance is important.

Slides:



Advertisements
Similar presentations
Network II.5 simulator ..
Advertisements

Topics to be discussed Introduction Performance Factors Methodology Test Process Tools Conclusion Abu Bakr Siddiq.
Introduction to Operating Systems CS-2301 B-term Introduction to Operating Systems CS-2301, System Programming for Non-majors (Slides include materials.
Chapter 1 CSF 2009 Computer Performance. Defining Performance Which airplane has the best performance? Chapter 1 — Computer Abstractions and Technology.
CS CS 5150 Software Engineering Lecture 19 Performance.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 19 Performance of Computer Systems.
1 CSSE 477 – A bit more on Performance Steve Chenoweth Friday, 9/9/11 Week 1, Day 2 Right – Googling for “Performance” gets you everything from Lady Gaga.
Reliability Week 11 - Lecture 2. What do we mean by reliability? Correctness – system/application does what it has to do correctly. Availability – Be.
CS CS 5150 Software Engineering Lecture 24 Reliability 4.
CS 501: Software Engineering Fall 2000 Lecture 19 Performance of Computer Systems.
OS Fall ’ 02 Performance Evaluation Operating Systems Fall 2002.
Chapter 1 Introduction 1.1A Brief Overview - Parallel Databases and Grid Databases 1.2Parallel Query Processing: Motivations 1.3Parallel Query Processing:
Understanding Operating Systems 1 Overview Introduction Operating System Components Machine Hardware Types of Operating Systems Brief History of Operating.
Chapter 13 Embedded Systems
Performance Evaluation
CS CS 5150 Software Engineering Lecture 25 Performance.
Copyright © 1998 Wanda Kunkle Computer Organization 1 Chapter 2.1 Introduction.
EET 4250: Chapter 1 Performance Measurement, Instruction Count & CPI Acknowledgements: Some slides and lecture notes for this course adapted from Prof.
1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 22 Performance of Computer Systems.
Measuring Performance Chapter 12 CSE807. Performance Measurement To assist in guaranteeing Service Level Agreements For capacity planning For troubleshooting.
1 Software Testing and Quality Assurance Lecture 40 – Software Quality Assurance.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 22 Performance of Computer Systems.
OS Fall ’ 02 Performance Evaluation Operating Systems Fall 2002.
Cmpt-225 Simulation. Application: Simulation Simulation  A technique for modeling the behavior of both natural and human-made systems  Goal Generate.
Database System Architectures  Client-server Database System  Parallel Database System  Distributed Database System Wei Jiang.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
Introduction. Readings r Van Steen and Tanenbaum: 5.1 r Coulouris: 10.3.
Process Management A process is a program in execution. It is a unit of work within the system. Program is a passive entity, process is an active entity.
Research on cloud computing application in the peer-to-peer based video-on-demand systems Speaker : 吳靖緯 MA0G rd International Workshop.
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
Performance Concepts Mark A. Magumba. Introduction Research done on 1058 correspondents in 2006 found that 75% OF them would not return to a website that.
© Pearson Education Limited, Chapter 16 Physical Database Design – Step 7 (Monitor and Tune the Operational System) Transparencies.
EET 4250: Chapter 1 Computer Abstractions and Technology Acknowledgements: Some slides and lecture notes for this course adapted from Prof. Mary Jane Irwin.
Uncovering the Multicore Processor Bottlenecks Server Design Summit Shay Gal-On Director of Technology, EEMBC.
C OMPUTER O RGANIZATION AND D ESIGN The Hardware/Software Interface 5 th Edition Chapter 1 Computer Abstractions and Technology Sections 1.5 – 1.11.
1 CS 501 Spring 2006 CS 501: Software Engineering Lecture 22 Performance of Computer Systems.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
Chapter 1 Computer Abstractions and Technology. Chapter 1 — Computer Abstractions and Technology — 2 The Computer Revolution Progress in computer technology.
Computer Organization & Assembly Language © by DR. M. Amer.
Morgan Kaufmann Publishers
Processor Architecture
NETE4631: Network Information System Capacity Planning (2) Suronapee Phoomvuthisarn, Ph.D. /
Virtual Application Profiler (VAPP) Problem – Increasing hardware complexity – Programmers need to understand interactions between architecture and their.
OPERATING SYSTEMS CS 3530 Summer 2014 Systems and Models Chapter 03.
Capacity Planning - Managing the hardware resources for your servers.
1 CS 501 Spring 2008 CS 501: Software Engineering Lectures 25 and 26 Performance of Computer Systems.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 23 Performance of Computer Systems.
Parallel IO for Cluster Computing Tran, Van Hoai.
Software System Performance CS 560. Performance of computer systems In most computer systems:  The cost of people (development) is much greater than.
Introduction to Performance Tuning Chia-heng Tu PAS Lab Summer Workshop 2009 June 30,
Spark on Entropy : A Reliable & Efficient Scheduler for Low-latency Parallel Jobs in Heterogeneous Cloud Huankai Chen PhD Student at University of Kent.
INTRODUCTION TO HIGH PERFORMANCE COMPUTING AND TERMINOLOGY.
OPERATING SYSTEMS CS 3502 Fall 2017
Credits: 3 CIE: 50 Marks SEE:100 Marks Lab: Embedded and IOT Lab
Software Architecture in Practice
Diskpool and cloud storage benchmarks used in IT-DSS
Chapter 2: System Structures
Parallel Data Laboratory, Carnegie Mellon University
Morgan Kaufmann Publishers
Introduction to Operating System (OS)
Architecture & Organization 1
Software System Performance
Architecture & Organization 1
CS703 - Advanced Operating Systems
Introduction To software engineering
Chapter 1 Introduction.
Software System Performance
Performance And Scalability In Oracle9i And SQL Server 2000
Virtual Memory: Working Sets
Presentation transcript:

CS 360 Lecture 11

 In most computer systems:  The cost of people (development) is much greater than the cost of hardware  Yet, performance is important  A single bottleneck can slow down an entire system  Future loads may be much greater than predicted 2

 Real time systems  when computation must be fast enough to support the service provided, e.g., fly- by-wire control systems have tight response time requirements.  Very large computations  where elapsed time may be measured in days, e.g., calculation of weather forecasts must be fast enough for the forecasts to be useful.  User interfaces  where humans have high expectations, e.g., mouse tracking must appear instantaneous.  Transaction processing  where staff need to be productive and customers not annoyed by delays, e.g., airline check-in. 3

 High-performance computing:  Large data collections (e.g., Amazon)  Huge numbers of users (e.g., Google)  Large computations (e.g., weather forecasting)  Must balance cost of hardware against cost of so(ware development  Some configurations are very difficult to program and debug  Sometimes it is possible to isolate applications programmers from the system complexities 4

 Tasks  Predict performance problems before a system is created.  Design and build a system that is not vulnerable to performance problems.  Identify causes and fix problems after a system is implemented. 5

 Examples  In a distributed system, what messages pass between nodes?  How many times must the system read from disk for a single transaction?  What buffering and caching is used?  Are operations in parallel or sequential?  Are other systems competing for a shared resource (e.g., a network or server farm)?  How does the operating system schedule tasks? 6

 Usually, CPU performance is not the limiting factor.  Hardware bottlenecks  Reading data from disk  Shortage of memory (including paging)  Moving data from memory to CPU  Network capacity (bandwidth)  Inefficient software  Algorithms that do not scale well  Parallel and sequential processing 7

 CPU performance is a limi1ng constraint in certain domains:  large data analysis (e.g., searching)  mathematical computation (e.g., engineering)  compression and encryption  multimedia (e.g., video)  perception (e.g., image processing) 8

9 Actual performance may be considerably less than theoretical peak performance

 Utilization is the proportion of the capacity of a service that is used on average.  Utilization =  avg. service time for a transaction/avg. arrival time of transactions  Peak loads and temporary increases in demand can be much greater than the average. 10

 Direct measurement on subsystem (benchmark)  Disk I/O  CPU  Network  Simulation  All require detailed understanding of the interaction between software and hardware systems. 11

 Tools for examining performance of subsystems:  Ex: Sysbench  Sysbench is a modular, cross-platform, multi-threaded benchmark tool used to quickly gain information about system performance.  Tests the following:  File I/O performance  Job scheduler performance  Memory allocation and transfer speed  Database service performance 12

 Build a computer program that models the system as set of states and events advance simulated time determine which events occurred update state and event list repeat  Discrete time simulation:  Time is advanced in fixed steps (e.g., 1 ms)  Next event simulation:  Time is advanced to next event 13

 Benchmarks:  Run tools on standard problem sets, sample inputs, or simulated loads on the system  Collect data on resource availability, utilization, performance, etc.  Example:  Disk I/O benchmark using MySQL to determine performance of different cloud stacks (OpenStack, Eucalyptus, Docker, etc.)  Network, base OS, hardware should remain the same across all tests. 14

15 Benchmark: Throughput vs. number of CPU cores utilized

 If a system performs badly, begin by identifying the cause:  Instrumentation:  Add timers to the code. Often this will reveal that delays are centered in a specific part of the system.  Test loads:  Run the system with varying loads (high transaction rates, large input files, many users, etc.). This may reveal the characteristics of when the system runs badly.  Design and code reviews:  Team review of system design, program design, and suspect sections of code. This may reveal an algorithm that is running very slowly, e.g., a sort, locking procedure, etc.  Find the underlying cause and fix it or the problem will return! 16

 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. 17

 Silicon chips: cost/performance improves 30% / year  in 12 years = 20x  in 24 years = 500x  Storage media: cost/performance improves 40% / year  in 12 years = 50x  in 24 years = 3,000x  These assumptions are conservative. During some periods, the increases have been considerably faster.  Note: Recently, the rate of performance increase in individual components, such as CPUs, has slowed down, but the overall rate of increase has been maintained by placing many CPU cores on a single chip. 18

 Will this be a typical laptop?  Surely there will be some fundamental changes in how these resources are packaged and used. 19

 Original:  Work expands to fill the time available.  C. Northcote Parkinson  Software development version:  Demand will expand to use all the hardware available.  Low prices will create new demands.  Your software will be used on equipment that you have not envisioned. 20

 Be careful about the assumptions that you make Here are some past assump1ons that caused problems:  Unix file system will never exceed 2 GB.  AppleTalk networks will never have more than 256 hosts (28 bits).  GPS software will not last more than 1024 weeks.  Two bits are sufficient to represent a year (Y2K bug).  Etc., etc.,

 Performance specifications should, at minimum, cover the following concepts:  In detail, what is the performance test scope?  What subsystems, interfaces, components, etc. are in and out of scope of the specific performance test?  For the user interfaces, how many concurrent users are expected for each?  Specify peak vs. normal usage  What does the target system (hardware) look like?  Specify all hardware configurations 22

 Performance specifications should, at minimum, cover the following concepts:  What is the Application Workload Mix for each component?  Ex: 20% login, 40% search, 30% item select, 10% checkout  What is the System Workload Mix?  What processes are running?  What are the time requirements for any/all processes?  Specify peak vs. normal 23

 The performance requirements should include test cases to demonstrate performance of  Individual components,  Interfaces,  Groups of components,  And the system as whole 24

Tasks needed for performance documentation: 1. Configure the testing environment 2. Initial test run – to check correctness of testing script 3. Execute tests (repeatedly) 4. Record and analyze the results (Pass/Fail)  Investigate corrective action if test fails 5. Re-tune components/interfaces/system and repeat process 25

Tasks needed for performance documentation: 6. Gathering performance requirements 7. Decide whether to use internal or external resources to perform tests. 8. Developing a plan to test for performance 9. Specify testing tools 10. Specify test data 11. Develop proof of concept test scripts for each component/interface 26