performance! measurement - university of the pacific€¦ · computersystems)and)networks)...

19
Computer Systems and Networks ECPE 170 – Jeff Shafer – University of the Pacific Performance Measurement

Upload: others

Post on 27-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Performance! Measurement - University of the Pacific€¦ · ComputerSystems)and)Networks) ECPE!170!–Jeff!Shafer!–University!of!the!Pacific! Performance! Measurement

ì  Computer  Systems  and  Networks  ECPE  170  –  Jeff  Shafer  –  University  of  the  Pacific  

Performance  Measurement  

Page 2: Performance! Measurement - University of the Pacific€¦ · ComputerSystems)and)Networks) ECPE!170!–Jeff!Shafer!–University!of!the!Pacific! Performance! Measurement

Lab  Schedule  

Ac?vi?es  ì  Today  

ì  Background  discussion  ì  Lab  5  –  Performance  

Measurement  

ì  Next  Tuesday  ì  Lab  5  –  Performance  

Measurement  

ì  Next  Thursday  ì  Lab  6  –  Performance  

Op<miza<on  

Assignments  Due  ì  Lab  4  

ì  Due  by  Feb  17th  5:00am  

ì  Lab  5  ì  Due  by  Feb  24th  5:00am  

Spring  2014  Computer  Systems  and  Networks  

2  

Page 3: Performance! Measurement - University of the Pacific€¦ · ComputerSystems)and)Networks) ECPE!170!–Jeff!Shafer!–University!of!the!Pacific! Performance! Measurement

Person  of  the  Day:  Bill  Joy  

ì  Co-­‐founder  of  Sun  Microsystems  

ì  Author  of  vi  text  editor  

ì  Key  contributor  to  original  BSD  Unix  while  a  Berkeley  grad  student  ì  First  open-­‐source  OS  with  

TCP/IP  

Spring  2014  Computer  Systems  and  Networks  

3  

Page 4: Performance! Measurement - University of the Pacific€¦ · ComputerSystems)and)Networks) ECPE!170!–Jeff!Shafer!–University!of!the!Pacific! Performance! Measurement

ì  Performance  Measurement  

Spring  2014  Computer  Systems  and  Networks  

4  

Page 5: Performance! Measurement - University of the Pacific€¦ · ComputerSystems)and)Networks) ECPE!170!–Jeff!Shafer!–University!of!the!Pacific! Performance! Measurement

Lab  5  Goals  

1.  Measure  program  execu<on  <me  

2.  Break  down  program  execu?on  ?me  by  specific  subrou<nes  /  lines  of  code  

3.  Monitor  program  for  memory  leaks  ì  Not  really  “performance”,  but  uses  same  tool  

Spring  2014  Computer  Systems  and  Networks  

5  

Page 6: Performance! Measurement - University of the Pacific€¦ · ComputerSystems)and)Networks) ECPE!170!–Jeff!Shafer!–University!of!the!Pacific! Performance! Measurement

Performance  Measurement  

ì  Why  is  it  important  to  measure  applica<on  performance  in  detail?  

Spring  2014  Computer  Systems  and  Networks  

6  

Page 7: Performance! Measurement - University of the Pacific€¦ · ComputerSystems)and)Networks) ECPE!170!–Jeff!Shafer!–University!of!the!Pacific! Performance! Measurement

Valgrind  

Spring  2014  Computer  Systems  and  Networks  

7  

hXp://valgrind.org/    

Page 8: Performance! Measurement - University of the Pacific€¦ · ComputerSystems)and)Networks) ECPE!170!–Jeff!Shafer!–University!of!the!Pacific! Performance! Measurement

Valgrind  Features  

ì  Memcheck  module  –  Memory  error  detector  

ì  Access  1  beyond  the  beginning  /  end  of  your  array?  

ì  Access  un-­‐ini?alized  memory?  

ì  Reading/wri?ng  memory  a]er  calling  free()?  

ì  Memory  leak?  (Lost  pointer  to  a  malloc()  block)  

ì  Valgrind  produces  a  report  that  iden<fies  these  errors  

Spring  2014  Computer  Systems  and  Networks  

8  

Page 9: Performance! Measurement - University of the Pacific€¦ · ComputerSystems)and)Networks) ECPE!170!–Jeff!Shafer!–University!of!the!Pacific! Performance! Measurement

Valgrind  Features  

ì  Callgrind  module  –  Program  profiler  

ì  Callgraph  shows  you  what  func?on  called  what  other  func?ons  

ì  How  much  CPU  ?me  does  each  func?on  /  code  line  consume?  

ì  Valgrind  produces  a  report  that  summarizes  CPU  usage  of  your  program  

Spring  2014  Computer  Systems  and  Networks  

9  

Page 10: Performance! Measurement - University of the Pacific€¦ · ComputerSystems)and)Networks) ECPE!170!–Jeff!Shafer!–University!of!the!Pacific! Performance! Measurement

Valgrind  Features  

ì  Massif  module  –  Heap  profiler  ì  Op?mize  your  program  to  use  less  memory    

(by  iden?fying  where  memory  is  being  used)  

ì  Helgrind  module  –  Threading  profiler  ì  Bugs  in  mul?-­‐threaded  programs  are  especially  

difficult  to  find!  

ì  …  and  more  modules  …  

Spring  2014  Computer  Systems  and  Networks  

10  

Page 11: Performance! Measurement - University of the Pacific€¦ · ComputerSystems)and)Networks) ECPE!170!–Jeff!Shafer!–University!of!the!Pacific! Performance! Measurement

Valgrind  Common  Uses  

ì  Your  program  runs  and  suddenly  segfaults  ì  Recall  a  segfault  means  a  memory  address  was  

accessed  that  doesn’t  exist  for  your  program  

ì  How  do  I  find  where  this  error  is?  ì  Valgrind  can  monitor  your  program  and  detect  

accesses  outside  of  sta?c  variables  and  dynamic  memory  regions  

Spring  2014  Computer  Systems  and  Networks  

11  

Page 12: Performance! Measurement - University of the Pacific€¦ · ComputerSystems)and)Networks) ECPE!170!–Jeff!Shafer!–University!of!the!Pacific! Performance! Measurement

Valgrind  Common  Uses  

ì  Your  program  gets  slower  and  slower  the  longer  it  runs  ì  Memory  leak?  (Slowing  running  out  of  heap  

memory  because  you  malloc()  without  ever  calling  free())  

ì  How  do  I  find  where  this  error  is?  ì  Valgrind  can  monitor  your  program.  It  can’t  tell  you  

where  you  should  free  it,  but  it  will  tell  you  where  you  originally  called  malloc(),  or  where  the  pointer  was  lost  

Spring  2014  Computer  Systems  and  Networks  

12  

Page 13: Performance! Measurement - University of the Pacific€¦ · ComputerSystems)and)Networks) ECPE!170!–Jeff!Shafer!–University!of!the!Pacific! Performance! Measurement

Valgrind  Behind-­‐the-­‐Scenes  

ì  Just-­‐in  <me  compiler  ì  Your  program  is  re-­‐compiled  onto  a  virtual  

(simulated)  processor  ì  Another  example  of  a  virtual  machine!  

ì  Benefit  –  Valgrind  can  observe  your  program  running  at  the  machine  instruc?on  level  

ì  Drawback  –  Slow!    (5x  slower  than  normal)  ì  But  it’s  s,ll  be/er  than  fixing  bugs  without  a  tool…  

Spring  2014  Computer  Systems  and  Networks  

13  

Page 14: Performance! Measurement - University of the Pacific€¦ · ComputerSystems)and)Networks) ECPE!170!–Jeff!Shafer!–University!of!the!Pacific! Performance! Measurement

ì  Profiling  Basics  

Spring  2014  Computer  Systems  and  Networks  

14  

Page 15: Performance! Measurement - University of the Pacific€¦ · ComputerSystems)and)Networks) ECPE!170!–Jeff!Shafer!–University!of!the!Pacific! Performance! Measurement

Profiling  Basics  

ì  The  next  labs  (5-­‐8)  ask  you  to  measure  applica<on  performance  by  conduc?ng  experiments  ì  Execu?on  ?me  ì  Processor  usage  ì  Memory  usage  

ì  Which  of  these  system  configura<on  do  you  think  would  be  best  in  terms  of  producing  the  cleanest,  most  accurate,  most  reproducible  results?  

Spring  2014  Computer  Systems  and  Networks  

15  

Page 16: Performance! Measurement - University of the Pacific€¦ · ComputerSystems)and)Networks) ECPE!170!–Jeff!Shafer!–University!of!the!Pacific! Performance! Measurement

Spring  2014  Computer  Systems  and  Networks  

16  

Program  to  Benchmark  

Page 17: Performance! Measurement - University of the Pacific€¦ · ComputerSystems)and)Networks) ECPE!170!–Jeff!Shafer!–University!of!the!Pacific! Performance! Measurement

Spring  2014  Computer  Systems  and  Networks  

17  

Program  to  Benchmark  

Page 18: Performance! Measurement - University of the Pacific€¦ · ComputerSystems)and)Networks) ECPE!170!–Jeff!Shafer!–University!of!the!Pacific! Performance! Measurement

Spring  2014  Computer  Systems  and  Networks  

18  

Program  to  Benchmark  

Page 19: Performance! Measurement - University of the Pacific€¦ · ComputerSystems)and)Networks) ECPE!170!–Jeff!Shafer!–University!of!the!Pacific! Performance! Measurement

Profiling  Basics  

ì  The  best  approach  (directly  boo<ng  Linux)  may  not  be  convenient  to  achieve  for  this  class  

ì  But  you  can  *definitely*  avoid  the  worst  configura<on!  

ì  Keep  your  system  simple  when  benchmarking  

Spring  2014  Computer  Systems  and  Networks  

19