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 ¡

Recommend


More recommend