culzss bit a bit vector algorithm m for lossless
play

CULZSS- -Bit: A Bit- -Vector Algorithm m for - PowerPoint PPT Presentation

CULZSS- -Bit: A Bit- -Vector Algorithm m for Lossless GPGPUs Data Comp mpression on Adnan Ozsoy School of Informa-cs and Compu-ng


  1. CULZSS-­‑ -­‑Bit: ¡ ¡A ¡ ¡Bit-­‑ -­‑Vector ¡ ¡Algorithm ¡ m ¡for ¡ ¡Lossless ¡ ¡ ¡GPGPUs ¡ Data ¡ ¡Comp mpression ¡ ¡on ¡ Adnan ¡Ozsoy ¡ ¡ School ¡of ¡Informa-cs ¡and ¡Compu-ng ¡ Indiana ¡University, ¡Bloomington, ¡USA ¡ ¡ Hace>epe ¡University, ¡TURKEY ¡ 1 ¡

  2. CULZSS-­‑ -­‑Bit: ¡ ¡A ¡ ¡Bit-­‑ -­‑Vector ¡ ¡Algorithm ¡ m ¡for ¡ ¡ ¡ ¡ Lossless ¡ ¡Data ¡ ¡Comp mpression ¡ ¡on ¡ ¡GPGPUs "If you were plowing a field, which would you rather use: Two strong oxen or 1024 chickens?" ¡ ¡ ¡ ¡ Seymour Cray, Father of the Supercomputer 2 ¡

  3. CULZSS-­‑ -­‑Bit: ¡ ¡A ¡ ¡Bit-­‑ -­‑Vector ¡ ¡Algorithm ¡ m ¡for ¡ ¡ ¡ ¡ Lossless ¡ ¡Data ¡ ¡Comp mpression ¡ ¡on ¡ ¡GPGPUs • Era ¡of ¡heterogeneous ¡compu-ng ¡ • General ¡Purpose ¡Graphics ¡Processing ¡Units ¡(GPGPUs) ¡ • CPU ¡/ ¡GPU ¡ • World’s ¡fastest ¡supercomputers ¡ • TITAN, ¡Tianhe-­‑1A, ¡Nebulae, ¡Tsubame ¡2.0, ¡…etc. ¡ 3 ¡

  4. CULZSS-­‑ -­‑Bit: ¡ ¡A ¡ ¡Bit-­‑ -­‑Vector ¡ ¡Algorithm ¡ m ¡for ¡ ¡ ¡ ¡ Lossless ¡ ¡Data ¡ ¡Comp mpression ¡ ¡on ¡ ¡GPGPUs • General ¡Purpose ¡Graphic ¡Processing ¡Units ¡in ¡HPC ¡ • The ¡common ¡paralleliza-on ¡approach ¡applied ¡ ¡ • Parallelize ¡the ¡best ¡known ¡sequen-al ¡algorithm ¡ • Op-mize ¡for ¡GPUs. ¡ ¡ • Problem : ¡ ¡ • Solu-ons ¡only ¡limited ¡to ¡a ¡single ¡applica-on ¡ • Directly ¡apply ¡CPU ¡solu-on ¡to ¡GPU ¡ • Not ¡fully ¡u-lize ¡the ¡resources ¡on ¡a ¡GPU. ¡ • GPU ¡has ¡different ¡architecture ¡than ¡CPU ¡ 4 ¡

  5. CULZSS-­‑ -­‑Bit: ¡ ¡A ¡ ¡Bit-­‑ -­‑Vector ¡ ¡Algorithm ¡ m ¡for ¡ ¡ ¡ ¡ Lossless ¡ ¡Data ¡ ¡Comp mpression ¡ ¡on ¡ ¡GPGPUs • Problem : ¡ ¡ • Scaling ¡data ¡usage ¡in ¡applica-ons ¡with ¡ BIG ¡data ¡ • Reduce ¡storage ¡requirements ¡ • Improve ¡data ¡communica-on ¡performance ¡ • Data ¡compression ¡ ¡ • Trade ¡off ¡in ¡increasing ¡running ¡-me ¡ • GPGPUs ¡ • Solu6on : ¡ • CULZSS ¡-­‑ ¡Parallel ¡Streaming ¡Compression ¡on ¡GPGPUs ¡ • Lempel-­‑Ziv-­‑Storer-­‑Szymanski ¡(LZSS) ¡Algorithm ¡ • CULZSS-­‑Bit ¡– ¡Improvement ¡over ¡the ¡algorithm ¡ ¡ 5 ¡

  6. CULZSS-­‑ -­‑Bit: ¡ ¡A ¡ ¡Bit-­‑ -­‑Vector ¡ ¡Algorithm ¡ m ¡for ¡ ¡ ¡ ¡ Lossless ¡ ¡Data ¡ ¡Comp mpression ¡ ¡on ¡ ¡GPGPUs • Lempel-­‑Ziv-­‑Storer-­‑Szymanski ¡(LZSS) ¡Algorithm ¡ • A ¡variant ¡of ¡LZ77 ¡ ¡ ¡ • Dic-onary ¡encoding ¡ ¡ • Sliding ¡history ¡buffer ¡ • Uncoded ¡lookahead ¡buffer ¡ • Visited ¡and ¡ ¡upcoming ¡data ¡ • Finding ¡the ¡max ¡substring ¡match ¡ 6 ¡

  7. CULZSS-­‑ -­‑Bit: ¡ ¡A ¡ ¡Bit-­‑ -­‑Vector ¡ ¡Algorithm ¡ m ¡for ¡ ¡ ¡ ¡ Lossless ¡ ¡Data ¡ ¡Comp mpression ¡ ¡on ¡ ¡GPGPUs • LZSS ¡Algorithm ¡ • 2 ¡stages ¡– ¡Matching ¡and ¡Encoding ¡ • Example: ¡ ¡ 7 ¡

  8. CULZSS-­‑ -­‑Bit: ¡ ¡A ¡ ¡Bit-­‑ -­‑Vector ¡ ¡Algorithm ¡ m ¡for ¡ ¡ ¡ ¡ Lossless ¡ ¡Data ¡ ¡Comp mpression ¡ ¡on ¡ ¡GPGPUs • LZSS ¡Algorithm ¡ Finding ¡matching ¡informa-on ¡ a ¡b ¡c ¡a ¡b ¡d ¡a ¡a ¡b ¡d ¡a ¡b ¡c ¡d ¡d ¡– ¡a ¡b ¡c ¡d ¡e ¡... ¡ ¡ 8 ¡

  9. CULZSS-­‑ -­‑Bit: ¡ ¡A ¡ ¡Bit-­‑ -­‑Vector ¡ ¡Algorithm ¡ m ¡for ¡ ¡ ¡ ¡ Lossless ¡ ¡Data ¡ ¡Comp mpression ¡ ¡on ¡ ¡GPGPUs • LZSS ¡Algorithm ¡ Finding ¡matching ¡informa-on ¡ a ¡b ¡c ¡a ¡b ¡d ¡a ¡a ¡b ¡d ¡a ¡b ¡c ¡d ¡d ¡– ¡a ¡b ¡c ¡d ¡e ¡.. ¡ 0 ¡1 ¡2 ¡3 ¡4 ¡5 ¡6 ¡7 ¡8 ¡9 ¡10 ¡… ¡ ¡ ¡ ¡ ¡ ¡4 ¡match ¡– ¡posi-on ¡10 ¡ 9 ¡

  10. CULZSS-­‑ -­‑Bit: ¡ ¡A ¡ ¡Bit-­‑ -­‑Vector ¡ ¡Algorithm ¡ m ¡for ¡ ¡ ¡ ¡ Lossless ¡ ¡Data ¡ ¡Comp mpression ¡ ¡on ¡ ¡GPGPUs • LZSS ¡Algorithm ¡ Encoding ¡informa-on ¡ a ¡b ¡c ¡a ¡b ¡d ¡a ¡a ¡b ¡d ¡a ¡b ¡c ¡d ¡d ¡– ¡a ¡b ¡c ¡d ¡e ¡.. ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡(4,10) ¡ ¡ à ¡ ¡write ¡to ¡file ¡ b ¡d ¡a ¡a ¡b ¡d ¡a ¡b ¡c ¡d ¡d ¡a ¡b ¡c ¡d ¡– ¡e ¡.. ¡ ¡ 10 ¡

  11. CULZSS-­‑ -­‑Bit: ¡ ¡A ¡ ¡Bit-­‑ -­‑Vector ¡ ¡Algorithm ¡ m ¡for ¡ ¡ ¡ ¡ Lossless ¡ ¡Data ¡ ¡Comp mpression ¡ ¡on ¡ ¡GPGPUs • Observa-ons ¡on ¡Longest ¡Prefix ¡Match ¡ Longest ¡Prefix ¡matching ¡ a ¡b ¡c ¡a ¡b ¡d ¡a ¡a ¡b ¡c... ¡ a ¡b ¡c ¡a ¡b ¡d ¡a ¡a ¡b ¡c... ¡ a ¡b ¡a ¡ ¡ ¡ a ¡ b ¡ c ¡ a ¡ b ¡ d ¡ a ¡ a ¡ b ¡ c ¡ a ¡ 1 ¡ 0 ¡ 0 ¡ 1 ¡ 0 ¡ 0 ¡ 1 ¡ 1 ¡ 0 ¡ 0 ¡ b ¡ 0 ¡ 1 ¡ 0 ¡ 0 ¡ 1 ¡ 0 ¡ 0 ¡ 0 ¡ 1 ¡ 0 ¡ a ¡ 1 ¡ 0 ¡ 0 ¡ 1 ¡ 0 ¡ 0 ¡ 1 ¡ 1 ¡ 0 ¡ 0 ¡ 11 ¡

  12. CULZSS-­‑ -­‑Bit: ¡ ¡A ¡ ¡Bit-­‑ -­‑Vector ¡ ¡Algorithm ¡ m ¡for ¡ ¡ ¡ ¡ Lossless ¡ ¡Data ¡ ¡Comp mpression ¡ ¡on ¡ ¡GPGPUs • Observa-ons ¡on ¡LPM ¡ • Matching ¡informa-on ¡of ¡every ¡element ¡required ¡ ¡ • Binary ¡matrix ¡ ¡ ¡ a ¡ b ¡ c ¡ a ¡ b ¡ d ¡ a ¡ a ¡ b ¡ c ¡ a ¡ 1 ¡ 0 ¡ 0 ¡ 1 ¡ 0 ¡ 0 ¡ 1 ¡ 1 ¡ 0 ¡ 0 ¡ b ¡ 0 ¡ 1 ¡ 0 ¡ 0 ¡ 1 ¡ 0 ¡ 0 ¡ 0 ¡ 1 ¡ 0 ¡ a ¡ 1 ¡ 0 ¡ 0 ¡ 1 ¡ 0 ¡ 0 ¡ 1 ¡ 1 ¡ 0 ¡ 0 ¡ 12 ¡

  13. CULZSS-­‑ -­‑Bit: ¡ ¡A ¡ ¡Bit-­‑ -­‑Vector ¡ ¡Algorithm ¡ m ¡for ¡ ¡ ¡ ¡ Lossless ¡ ¡Data ¡ ¡Comp mpression ¡ ¡on ¡ ¡GPGPUs • Observa-ons ¡on ¡LPM ¡ • Core ¡regular ¡problem ¡ • Matching ¡informa-on ¡of ¡every ¡element ¡required ¡ ¡ • Binary ¡matrix ¡ Word ¡Size ¡ • Bit ¡parallelism ¡ • Bits ¡packed ¡into ¡a ¡word ¡ a ¡ ¡1001001.. ¡ • Using ¡bit ¡opera-ons ¡on ¡words ¡ ¡ a ¡ ¡ ¡1001001.. ¡ ¡ ¡ ¡ ¡ ¡abcabda.. ¡ 13 ¡

  14. CULZSS-­‑ -­‑Bit: ¡ ¡A ¡ ¡Bit-­‑ -­‑Vector ¡ ¡Algorithm ¡ m ¡for ¡ ¡ ¡ ¡ Lossless ¡ ¡Data ¡ ¡Comp mpression ¡ ¡on ¡ ¡GPGPUs • Observa-ons ¡on ¡LPM ¡ • Matching ¡informa-on ¡of ¡every ¡element ¡required ¡ ¡ • Binary ¡matrix ¡ • Bit ¡parallelism ¡ • Pre-­‑compute ¡matching ¡data ¡for ¡given ¡query ¡string ¡ • Alphabet-­‑strings ¡ ¡ ¡ char ¡a ¡ char ¡b ¡ char ¡c ¡ char ¡d ¡ a ¡ 1 ¡ 0 ¡ 0 ¡ 0 ¡ b ¡ 0 ¡ 1 ¡ 0 ¡ 0 ¡ a ¡ 1 ¡ 0 ¡ 0 ¡ 0 ¡ 14 ¡

  15. CULZSS-­‑ -­‑Bit: ¡ ¡A ¡ ¡Bit-­‑ -­‑Vector ¡ ¡Algorithm ¡ m ¡for ¡ ¡ ¡ ¡ Lossless ¡ ¡Data ¡ ¡Comp mpression ¡ ¡on ¡ ¡GPGPUs • Bit ¡Vector ¡Approach ¡ • Matching ¡informa-on ¡of ¡every ¡element ¡required ¡ ¡ • Binary ¡matrix ¡ • Bit ¡parallelism ¡ • Pre-­‑compute ¡matching ¡data ¡for ¡given ¡query ¡string ¡ • Alphabet-­‑strings ¡ • Combining ¡all ¡of ¡these ¡ à ¡Bit-­‑Vector ¡Approach ¡ 15 ¡

  16. CULZSS-­‑ -­‑Bit: ¡ ¡A ¡ ¡Bit-­‑ -­‑Vector ¡ ¡Algorithm ¡ m ¡for ¡ ¡ ¡ ¡ Lossless ¡ ¡Data ¡ ¡Comp mpression ¡ ¡on ¡ ¡GPGPUs • Bit ¡Vector ¡Approach ¡ • Very ¡Suitable ¡GPGPU ¡ ¡ • Less ¡code ¡divergence ¡ • Reuse ¡of ¡data ¡– ¡fast ¡lookup ¡memory ¡ 16 ¡

  17. CULZSS-­‑ -­‑Bit: ¡ ¡A ¡ ¡Bit-­‑ -­‑Vector ¡ ¡Algorithm ¡ m ¡for ¡ ¡ ¡ ¡ Lossless ¡ ¡Data ¡ ¡Comp mpression ¡ ¡on ¡ ¡GPGPUs • Shij-­‑Or ¡Algorithm ¡(Exact ¡Matching) ¡ 17 ¡

  18. CULZSS-­‑ -­‑Bit: ¡ ¡A ¡ ¡Bit-­‑ -­‑Vector ¡ ¡Algorithm ¡ m ¡for ¡ ¡ ¡ ¡ Lossless ¡ ¡Data ¡ ¡Comp mpression ¡ ¡on ¡ ¡GPGPUs • Shij-­‑Or ¡ 18 ¡

  19. CULZSS-­‑ -­‑Bit: ¡ ¡A ¡ ¡Bit-­‑ -­‑Vector ¡ ¡Algorithm ¡ m ¡for ¡ ¡ ¡ ¡ Lossless ¡ ¡Data ¡ ¡Comp mpression ¡ ¡on ¡ ¡GPGPUs • Bit-­‑vector ¡Longest ¡Prefix ¡Match ¡ 19 ¡

  20. CULZSS-­‑ -­‑Bit: ¡ ¡A ¡ ¡Bit-­‑ -­‑Vector ¡ ¡Algorithm ¡ m ¡for ¡ ¡ ¡ ¡ Lossless ¡ ¡Data ¡ ¡Comp mpression ¡ ¡on ¡ ¡GPGPUs • Bit-­‑vector ¡Longest ¡Prefix ¡Match ¡ 20 ¡

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend