Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Communicatiebewuste plaatsing van data in een gedistribueerd rekensysteem

2,315 views

Published on

Presentatie van mijn openbare doctoraatsverdediging op 19 mei 2010. Na de verdediging behaalde ik de academische graad van Doctor in de Ingenieurswetenschappen: Computerwetenschappen.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Communicatiebewuste plaatsing van data in een gedistribueerd rekensysteem

  1. 1. Communica)ebewuste     plaatsing  van  data  in  een   gedistribueerd  rekensysteem   Peter  Bertels   Universiteit  Gent    –    Vakgroep  Elektronica  en  Informa)esystemen    –    Openbare  doctoraatsverdediging    –    woensdag  19  mei  2010  
  2. 2. Ons  spaarboekje  bij  de  bank   communica)e  in  een  gedistribueerd  systeem   L   B   G  
  3. 3. Gedistribueerd  rekensysteem:   vele  handen  maken  licht  werk   processor   processor   geheugen   geheugen   processor   processor   geheugen   geheugen  
  4. 4. Communica)e  op)maliseren:   drie  stappen  op  weg  naar  meer  efficiën)e   meten  is  weten   verdeling  van  het  werk   plaatsing  van  data  
  5. 5. Communica)e  tussen  de  methodes   van  een  Java-­‐programma   m1   m2   m3   m6   m5   m4  
  6. 6. Verdeling  van  interne  taken  over  processors   m1   m2   m3   m6   m5   m4  
  7. 7. Verdeling  van  interne  taken  over  processors   m1   m2   m3   m6   m5   m4  
  8. 8. Communica)eprofiel  legt  de  inherente   communica)e  in  een  programma  bloot   m1   m2   m3   m5   m4   m3   oproepgraaf communica)e
  9. 9. Communica)eprofiel  opbouwen     gaat  zeer  langzaam  en  vergt  veel  geheugen   •  Gemiddeld  voor  6  Java-­‐programma’s:   –  #  geheugentoegangen:  877  miljoen   –  #  methode-­‐oproepen:  155  miljoen   •  Tergend  traag:     –  Elke  lees/schrijf-­‐opera)e  moet  geteld  worden   •  Geheugenverslindend:   –  Per  Java-­‐object  moet  extra  data  bijgehouden  worden  
  10. 10. Snelle,  nauwkeurige  me)ng  van  het   communica)eprofiel  door  reservoir  sampling   •  Scha]ng  van  het  communica)eprofiel   •  Reservoir  sampling  gee_  een  willekeurige  selec)e   van  producent/consument-­‐paren   )jd   reservoir:  N  monsters   )jd  
  11. 11. Communica)eprofiel  wordt     veel  sneller  en  toch  nauwkeurig  opgebouwd   •  Profilering  gaat  15x  sneller   •  Rela)eve  fout  blij_  binnen  vastgestelde  grens   •  Reservoirgrooae  N  is  sta)s)sch  bepaald   50%   rela)eve  fout   1000   10.000   100.000   1000.000   reservoirgrooae  
  12. 12. Func)onele  par))onering  van  programma’s   a   b   c   d   e   f   g   h   oproepgraaf i   communica)e
  13. 13. Hardwareversnellers  kunnen  de  uitvoering     van  programma’s  dras)sch  versnellen   DNA-­‐ communica)e   aligna)e   kern   programma   1  processor   met  co-­‐processor   uitvoerings)jd  
  14. 14. Generieke  processor  vormt  samen  met     een  hardwareversneller  een  hybried  plahorm   java   vhdl   generieke     hardware-­‐   PCI   processor   versneller  
  15. 15. Java  virtuele  machine  is  een  abstrac)elaag   tussen  het  programma  en  complexe  hardware   programma   java  virtuele  machine   generieke   PCI   hardware-­‐   processor   versneller  
  16. 16. Virtuele  machine  stuurt     de  hardware-­‐versneller  aan   generieke   PCI   hardware-­‐     processor   versneller   hardware-­‐oproep   return  
  17. 17. Communica)ebewuste  plaatsing  van     data  in  het  gedistribueerde  geheugen   hardware-­‐   hoofdprocessor   versneller   PCI   hoofdgeheugen   lokaal  geheugen   •  Gedistribueerde  Java  heap   •  Elke  rekenknoop  kan  elk  object  lezen/schrijven   •  NUMA:  niet-­‐uniforme  toegangs)jden   •  Data  plaatsen  waar  ze  het  vaakst  gebruikt  wordt  
  18. 18. Verschillende  technieken  klaren  de  klus   alles  in  hoofdgeheugen   lokale  dataplaatsing   zelf-­‐lerende  aanpak   theore)sch  op)mum  
  19. 19. Zelf-­‐lerend  algoritme  probeert  de  op)male   loca)e  te  vinden  )jdens  de  uitvoering     •  Groepeer  objecten  per  crea)eplaats   •  Tel  geheugentoegangen  per  crea)eplaats   •  Nieuwe  objecten  plaatsen  volgens  de  tellers   co-­‐processor   397   12   Circle  c  =  new  Circle();   processor  
  20. 20. Presta)es  over  alle  programma’s  heen   •  Evalua)e  op  SPECjvm-­‐  en  DaCapo-­‐benchmarks   •  Vergelijking  van  frac)e  niet-­‐lokale  toegangen   47%   referen)e  (alles  in  hoofdgeheugen)   33%   lokale  dataplaatsing   26%   zelf-­‐lerende  aanpak   11%   op)mum  
  21. 21. De  beste  techniek  voor  elk  programma   xml.valida crypto.rsa   io   )on   d b   mpegaud hsql chart   comp antlr   pmd   ress   zelf-­‐lerend   zelf-­‐lerend  ≈  lokaal     lusearch luindex   xalan   228ja ck   227mtrt   xml.transf jython   202jess   crypto.aes orm   fop     derby   bloat   209db   lokale  dataplaasing   referen)e   213javac   serial  
  22. 22. Convergen)e  van  de  zelf-­‐lerende  aanpak   Circle  c  =  new  Circle();   processor   1   2   4   6   )jd   co-­‐processor   3   5   7   8   9   convergen)e  
  23. 23. Sommige  objecten  staan  in  het  ‘verkeerde’   geheugen,  maar  het  algoritme  leert  snel   100% 50% 0% 0 16 512 16384 never
  24. 24. Zelf-­‐lerend  algoritme  werkt  ook  nog   als  communica)e  bemonsterd  wordt   •  Evalua)e  voor  benchmark  antlr   •  Vermindering  van  de  efficiën)e  blij_  beperkt   #  niet-­‐lokale  toegangen   100% 50% 0% volledig 1/10 1/100 1/1.000 1/10.000 bemonsteringsfrequen)e
  25. 25. Zelf-­‐lerend  algoritme  werkt  ook  nog   als  communica)e  bemonsterd  wordt   #  niet-­‐lokale  toegangen   100% 50% 0% antlr luindex hsqldb 227mtrt serial 209db
  26. 26. Meer  programma’s  profiteren  van  hardware-­‐ versnelling  dankzij  zelf-­‐lerende  aanpak   rela)eve  uitvoerings)jd   referen)e   16   lokaal   4   zelf-­‐lerend   1   1   10   100   rela)eve  kost  van  niet-­‐lokale  toegangen  
  27. 27. Communica)ebewuste  plaatsing  van  data   in  een  gedistribueerd  rekensysteem   meten  is  weten   verdeling  van  het  werk   plaatsing  van  data  
  28. 28. Communica)ebewuste     plaatsing  van  data  in  een   gedistribueerd  rekensysteem   Peter  Bertels   Universiteit  Gent    –    Vakgroep  Elektronica  en  Informa)esystemen    –    Openbare  doctoraatsverdediging    –    woensdag  19  mei  2010  

×