7-reliability and performance - iit | instituto de …invesgacióntecnológica 5...

31
7Reliability and performance Advanced Compu8ng Tools for Applied Research (Herramientas Computacionales Avanzadas para la Inves6gación Aplicada) Rafael Palacios, Jaime Boal

Upload: lydang

Post on 28-Mar-2018

216 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

7-­‐Reliability  and  performance    

Advanced  Compu8ng  Tools  for  Applied  Research  (Herramientas  Computacionales  Avanzadas  para  la  Inves6gación  Aplicada)  

Rafael  Palacios,  Jaime  Boal  

Page 2: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

2  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

Implemen3ng  computa3onal  tools    1.  So:ware  Reliability  2.  So:ware  Performance  3.  Performance  tools  4.  Performance  examples  

Advanced  Compu8ng  Tools  for  Applied  Research  Contents  

Page 3: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

So:ware  Reliability  

1  

Page 4: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

4  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

Defini8on  of  SoKware  Reliability  •  Reliable=  

– Worthy  of  trust,  dependable.  –  Yielding  the  same  or  compa3ble  results.  

•  So:ware  reliability  –  "The  probability  of  failure-­‐free  opera3on  of  a  computer  program  in  a  specified  environment  for  a  specified  3me"  

JD.  Musa,  A.  Iannino,  and  K.  Okumoto,  Engineering  and  Managing  So-ware  with  Reliability  Measures,  McGraw-­‐Hill,  1987.  

Page 5: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

5  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

Reliability  recipes    •  Development  

– Develop  your  code  in  modules  –  Separate  algorithms  from  the  interface  – Develop  small  programs  to  test  each  module  

•  Typical  checklist  – Are  loop  indexes  range-­‐tested?    –  Is  input  data  checked  for  range  errors?    –  Is  divide-­‐by-­‐zero  avoided?  (sqrt,  log,  tan…)  –  Is  excep3on  handling  provided?  

Page 6: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

6  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

Clarity  vs  performance  •  Some  standard  "compact"  instruc3ons  may  increase  performance  

i++;      i-­‐-­‐;        à  Assembly  INC,  DEC  sum  +=  x  *  y;    à  Mul3media  assembly  instruc3ons:        MLA  (Mul3ply  with  accumulate)  or          MAD  (Mul3ply  and  add)    

•  In  general  "compact"  expressions  do  not  increase  performance  and  impact  the  readability  of  the  code  

sum+=*p++;            vs          sum  +=  p[i];  Try it

Page 7: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

2  

So:ware  Performance  

Page 8: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

8  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

Compu8ng  performance  •  It's  all  about  locality  

•  Levels  of  locality:  – Cache  memory  – RAM  memory  –  External  access  

Page 9: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

9  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

Memory  access  •  Cache  is  a  small  but  very  fast  memory.  •  It  increases  performance,  but  the  final  result  depends  mostly  on  the  applica3on  and  also  on  the  configura3on/size  of  the  cache.    

•  Nowadays  there  is  L1,  L2  and  L3  cache  memory  

L2 L2

DDR memory

Core 1

L1

Core 2

L1

Core 3

L1

Core 4

L1

L3

L2 L2 L2 L2

DDR memory

Core 1

L1

Core 2

L1

Core 3

L1

Core 4

L1

Intel Quad-core AMD Quad-core Note:    The  new  Intel  i7  Extreme  also  has  independent  L2,  and  L3:  L2:  4x256  kB  L3:  8  MB  

0.5  ns  

1  ns  

5  ns  

       60  -­‐  100  ns  local        remote  

Page 10: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

10  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

External  access  •  Access  to  hard  drive  (cache  1  ns,  RAM  100  ns,  Disk  10,000,000  ns)  

– Data  file  read/write.  There  is  another  cache  in  the  hard  drive  – Virtual  memory  

•  Opera3ng  system  calls  – Memory  alloca3on  – Display  informa3on  

•  Server-­‐client  communica3ons  – Database  calls  – Web  services  

Page 11: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

3  

Performance  Tools  

Page 12: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

12  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

Measuring  8me:  C  •  C  func3ons  for  measuring  3me  

#include <ctime>

time_t time( time_t *time ); //seconds since Jan 1st, 1970

double difftime( time_t time2, time_t time1 ); //elapsed time

•  Example  

time_t t0;

t0=time();

//your code goes here

t1=time();

printf("Elapsed time: %f s\n",difftime(t1,t0);

 

Page 13: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

13  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

Measuring  8me:  Matlab  •  Matlab  func3ons  for  measuring  3me  

tic %initialize time counter

toc %displays elapsed time in seconds

t=cputime; %measures CPU time. In case of parallel processing it sums the cpu times of all jobs.

•  Example  

>> t=cputime; inv(inv(rand(3000))); cputime-t

ans =

17.7500

>> tic, inv(inv(rand(3000))); toc

Elapsed time is 10.894806 seconds.

 

Page 14: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

14  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

System  Monitoring  •  Windows  Task  Manager  

CPU usage

Memory usage

Page 15: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

15  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

System  Monitoring  •  ProcExp:  Developed  by  sysinternals.com,  bought  by  Microso:  

Available  at:  hlp://www.iit.upcomillas.es/:p/pub/win/u3ls/  

Page 16: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

16  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

System  Monitoring  •  ProcExp  for  linux  (sourceforge.net)  

Page 17: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

17  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

System  Monitoring  •  Mac  OS  X  Ac3vity  Monitor  

Page 18: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

18  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

Network  speed  •  SpeedTest.net  by  Ookla  

Page 19: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

19  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

Profiler  •  A  profiler  is  a  tool  to  measure  performance.  •  Profilers  display  execu3on  3mes  with  different  levels  of  detail.  •  They  are  the  most  useful  tool  to  iden3fy  which  sec3ons  of  the  code  deserve  the  effort.  

Page 20: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

20  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

Matlab  profiler  •  Basic  commands:  >profile  on  >your  commands  here  >profile  off  >profile  report  

Page 21: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

21  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

Xcode  profiler  Xcode  IPhone  So:ware/Hardware  profiler    -­‐CPU  sampler  -­‐Object  alloca3on  -­‐Memory  leaks  

Page 22: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

22  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

Web  profiler  Safari  Develop>Show  web  inspector    -­‐Loading  3me  graph  -­‐Object  sizes  -­‐JavaScript  profiler  

Page 23: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

23  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

Web  profiler  Chrome.  View-­‐>Developer  Tools  

Emular dispositivo

Emular conexión de red

Medidas de tiempo

Page 24: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

4  

Performance  Examples  

Page 25: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

25  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

Cache  use  (Matlab  example)  •  Browse  matrix  by  rows  or  columns  

suma=0; for i=1:1000 for j=1:1000 suma=suma+z(i,j); end end suma=0;

for i=1:1000 for j=1:1000 suma=suma+z(j,i); end end

suma=sum(z(:));

S. McGarrity, “Programming Patterns: Maximizing Code Performance by Optimizing Memory Access,” MathWorks News & Notes, Jun. 2007

Page 26: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

26  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

Cache  use  •  More  sophis3cated  example:  Median  Filter  

cn=imnoise(c,'salt & pepper');

Page 27: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

27  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

Cache  use  •  C  example  of  sor3ng  algorithms  

//Sort1: Bubble method (close exchanges) for(x=0; x<n-1; x++) { for(y=0; y<n-x-1; y++) { if(array[y]>array[y+1]) { temp = array[y+1]; array[y+1] = array[y]; array[y] = temp; } } } //Sort2: Long exchanges for(x=0; x<n-1; x++) { for(y=x+1; y<n; y++) { if(array[x]>array[y]) { temp = array[x]; array[x] = array[y]; array[y] = temp; } } }

Page 28: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

28  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

Matlab  in  par8cular  •  Avoiding  loops  increases  performance  

>> c=imread('autumn.tif'); >> tic, for t=1:100, change, end, toc Elapsed time is 5.6 seconds. >> c=imread('autumn.tif'); >> tic, for t=1:100, c(find(c>200))=0; end, toc Elapsed time is 0.06 seconds. >> tic, for t=1:100, c(c>200)=0; end, toc Elapsed time is 0.05 seconds.

%change imagen for i=1:size(c,1) for j=1:size(c,2) for k=1:size(c,3) if c(i,j,k)>200 c(i,j,k)=0; end end end end

100x

• Matlab is interpreted • Internal functions are optimized • Internal functions may use all your cores

Page 29: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

29  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

External  calls  (memory  alloca8on)  •  1  calloc  vs  1000  realloc  

>> tic, prueba, toc Elapsed time is 54.589000 seconds. >> tic, for t=1:100, prueba2, end, toc Elapsed time is 10.846000 seconds.

%prueba for i=1:1000 for j=1:1000 z2(j,i)=z(j,i); end end

%prueba2 z2=ones(size(z)); for i=1:1000 for j=1:1000 z2(j,i)=z(j,i); end end

500x

S. McGarrity, “Programming Patterns: Maximizing Code Performance by Optimizing Memory Access,” MathWorks News & Notes, Jun. 2007

Page 30: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

30  Ins8tuto  de  Inves8gación  Tecnológica  Escuela  Técnica  Superior  de  Ingeniería  ICAI  

Advanced  Compu8ng  Tools  for  Applied  Research  5-­‐Reliability  and  performance  

Virtual  memory  •  Just  hitng  the  limit  of  the  memory,  execu3on  3me  increases  drama3cally.  

•  Crea3ng  a  new  variable  requires  a  lot  of  3me.  

•  Working  with  a  large  variable  is  a  similar  problem  as  cache.  

sz=350000000; x=rand(sz,1); tic, sort(x); toc

Page 31: 7-Reliability and performance - IIT | Instituto de …InvesgaciónTecnológica 5 Escuela+Técnica+Superior+de+Ingeniería+ICAI+ Advanced+Compu8ng+Tools+for+Applied+Research+ 5"Reliability+and+performance+

 Instituto de Investigación Tecnológica C/ Santa Cruz de Marcenado, nº 26 28015 Madrid Tel +34 91 542 28 00 Fax + 34 91 542 31 76 [email protected]                      

www.iit.upcomillas.es