The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Facebook открыл реализацию алгоритма сжатия Zstandard, opennews (??), 01-Сен-16, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


21. "Facebook открыл реализацию алгоритма сжатия Zstandard"  +/
Сообщение от ктонибудь (?), 01-Сен-16, 17:33 
> Кто-нибудь пояснит, при чём здесь Facebook?

объясняем: мордокнижка платит афттару zstandard зарплату. Чтобы он мог заниматься своей метафи...зачеркнуто, математикой, с девяти до восьми с перерывом на обед, а не стоять в очереди за бесплатным.

> До этого я думал, что автором Zstd является автор алгоритма LZ4 и открыт он был ещё в

если не полениться, побороть страх и сомнения и открыть таки ссылку - то ты увидишь, что фейсбучная статья подписана (в том числе) пресловутым автором алгоритма.

И то что опубликовано сейчас - работающий как они выразились "ready to production" код, а не proof of concept, который был "в начале прошлого года".

Огорчает совершенно другое - афтар зачем-то сравнивает в тестах мягкое с теплым - да, это очень охрененно, что его алгоритм умеет использовать особенности современных процессоров и большую память, но только в тех случаях, когда они по сути лишние, и никаких других задач кроме вот прям счас нам надо получить сжатый файл (один!) не исполняется.
А когда они совсем нелишние - сравнивать надо ресурсоемкость, чего они почему-то не сделали в принципе.

Теперь прикинем, как это будет внутри какой-нибудь rasp pi, где нет branch prediction (и любой branchless код просто длиннее и медленнее нормального), дорогая 64битная арифметика, где нет лишних ядер, лишней памяти - а заодно оценим количество менее вырожденных случаев (когда тот же opennet ротейтит логи, ага). Ну или даже фейсбук - который под сжатие своих релейшн графов может выделить целую ферму специально-сжимающих серверов, но графов у него нифига не один, поэтому совершенно наплевать, будут шестнадцать ядер жевать шестнадцать графов поочередно тредами, или параллельно - каждый своим ядром.

И задумаемся - а почему, собственно, гениальный математик даже не подумал в эту сторону?

Ну и вишенка на тортике - изящно вынести специфический(!) словарь в ../ и почему-то проигнорировать тот факт, что его размер вообще-то сопоставим со сжатым результатом. Неотъемлемой частью которого он, на самом-то деле, является.

Поневоле закрадываются сомнения - там все остальное-то нормально сделано?

Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

23. "Facebook открыл реализацию алгоритма сжатия Zstandard"  –1 +/
Сообщение от qwerty (??), 01-Сен-16, 18:34 
>- изящно вынести специфический(!) словарь в ../

если данных терабайтами и при этом вариабельность 100k словаря за год  0%,
то почему бы и нет?

Ответить | Правка | Наверх | Cообщить модератору

47. "Facebook открыл реализацию алгоритма сжатия Zstandard"  –1 +/
Сообщение от . (?), 02-Сен-16, 14:42 
>> - изящно вынести специфический(!) словарь в ../
> если данных терабайтами и при этом вариабельность 100k словаря за год  0%,

вы совсем читать не умеете? Ну ладно первоисточник ниасилить (это ж надо было весь этот булшит не просто прочесть по диагонали, но и проверить подозрительный момент) - но слово _специфический_ вами тоже не понято?

Сперва тренируем на конкретном наборе данных, потом показываем счастливым лохам, как легко и быстро этот самый набор сжимается. Словарь при этом забываем в ../, время его составления тоже ингнорируем, все счастливы и танцуют.


Ответить | Правка | Наверх | Cообщить модератору

36. "Facebook открыл реализацию алгоритма сжатия Zstandard"  +6 +/
Сообщение от Аноним (-), 01-Сен-16, 21:05 
> Теперь прикинем, как это будет внутри какой-нибудь rasp pi, где нет branch
> prediction (и любой branchless код просто длиннее и медленнее нормального), дорогая
> 64битная арифметика, где нет лишних ядер, лишней памяти -

Я сравнивал разные LZ-образные на одноядерном ARMv7. Это несколько отличается от x86.

1) LZ4: по прежнему в лидерах скорости сжатия/распаковки. Может догнаться до скорости memcpy(), а на хорошо сжимаемых данных даже обогнать memcpy (вероятно, разгрузив read исходных данных из оперативы по сравнению с memcpy). Ratio как обычно скромный. А он сильно жать в принципе не может. Не для этого он.

2) Zstd: в отличие от x86 где zstd заметно быстрее zlib, на ARM zstd примерно как zlib. Ну может капельку быстрее иногда. Но жмет все-равно значительно лучше zlib'а. Профит по любому.

3) Brotli. Это уже тяжеловес. По скорости на ARM уже несколько сливает zlib. Но жмет кардинально плотнее и на верхних уровнях приближается к LZMA. Распаковываясь в ТРИ РАЗА быстрее чем LZMA на том же проце. Тоже вполне приятный tradeoff. Нагло жульничает на вебне используя встроенный словарь на добрых 120 кило.

Ответить | Правка | К родителю #21 | Наверх | Cообщить модератору

48. "Facebook открыл реализацию алгоритма сжатия Zstandard"  –1 +/
Сообщение от . (?), 02-Сен-16, 15:05 
> Я сравнивал разные LZ-образные на одноядерном ARMv7. Это несколько отличается от x86.

спасибо, это как раз то, чего не сделали авторы - что и вызывает у меня удивление. Скудоумием они явно не могли страдать, значит - намеренная и осознаваемая подмена понятий.
Причем совсем непонятно, чего ради - на первый взгляд и честный анализ должен был дать достаточно достойные результаты. Ну а раз совравшему уже не хочется доверять и в остальном - вдруг оно, к примеру, каждый пятый файл вообще не cможет потом распаковать.

> проце. Тоже вполне приятный tradeoff. Нагло жульничает на вебне используя встроенный
> словарь на добрых 120 кило.

ну это не нагло. Нагло это в исходной статье - сперва пообучать алгоритм, потом отложить словарик, потом _эти_же_ данные (не какие-то похожие, а именно те) сжать. (причем оно таки делало zlib чуть ли не в восемь раз даже с учетом словаря, совершенно неясно, зачем понадобилось такое мелкое жульничество. Возможно, ларчик откроется, если засечь время обучения- вызов time там тоже скромно опущен ;) Если словарь является частью программы, ничего плохого в этом я не вижу (как, собственно, и в специфическом словаре, упакованном вместе с данными, кто-то из ранних досовских архиваторов именно так и работал...аццки долго ;)

Ответить | Правка | Наверх | Cообщить модератору

53. "Facebook открыл реализацию алгоритма сжатия Zstandard"  +/
Сообщение от Аноним (-), 03-Сен-16, 17:11 
> спасибо, это как раз то, чего не сделали авторы - что и
> вызывает у меня удивление. Скудоумием они явно не могли страдать, значит
> - намеренная и осознаваемая подмена понятий.

Больше похоже на то что они так просто не умеют.

> Причем совсем непонятно, чего ради - на первый взгляд и честный анализ
> должен был дать достаточно достойные результаты.

ARM вообще забавные штуки. Там соотношения скорости проца vs скорость оперативы другие и в целом соотношения привычные на х86 могут ощутимо перекоситься. Хотя общая идея остается.

Кроме того сильно роялит какие именно были данные. Некоторые виды данных сильно лучше сжимаются если сделать (обратимый) препроцессинг, а при распаковке - вернуть как было. Если грамотно выбрать тестовый набор данных - можно выпятить почти любой алгоритм и задвинуть остальных. Единственная проблема: в других случаях цифры могут быть гораздо менее красивые. Поэтому самый надежный способ - пустить ряд алгоритмов на своих данных и посмотреть что получится. Иногда бывает даже такой "парадокс" что gzip -3 может сжать и лучше и быстрее чем gzip -9. Это касается и многих других алгоритмов, хоть и по разным причинам.

> каждый пятый файл вообще не cможет потом распаковать.

Ну это врядли. Мордокнига думаю мощно потестирует в продакшне. Да и до этого алгоритм народ немало гонял. Это впрочем вообще не архиватор а библа сжатия. Поверх которой можно запилить в том числе и архиватор.

>> проце. Тоже вполне приятный tradeoff. Нагло жульничает на вебне используя встроенный
>> словарь на добрых 120 кило.
> ну это не нагло. Нагло это в исходной статье - сперва пообучать алгоритм, потом
> отложить словарик, потом _эти_же_ данные (не какие-то похожие, а именно те) сжать.

Так гугл именно это и сделал: погонял brotli на своей выборке вебни. Сдампил наиболее удачный словарь. Вшил его прямо в библу (более +120 кил к весу либы). И теперь оно на вебне накручивает себе ratio только в путь. Точно так же его может накрутить и сабж, это ровно настолько же (не)честно. Проблема этого метода в том что если данные не похожи на то что в словаре, профита не наступает и цифры гораздо более скромные.

> (причем оно таки делало zlib чуть ли не в восемь раз даже с учетом словаря,
> совершенно неясно, зачем понадобилось такое мелкое жульничество.

Это не столько жульничество, сколько showcase себя любимого с демонстрацией того что можно получить за пределами zlib. Ну да, автор маркетолог-недоучка, поэтому умеет себя показать с выгодной стороны :). Но в целом он предпринял усилия для оптимизации алгоритма и доведения до ума и в целом tradeoff удачный вышел.

> Возможно, ларчик откроется, если засечь время обучения-

Если делать как гугль и ко в brotli - это делается один раз за все время. А потом вгружаешь словарик - и (почти) вся вебня начинает жаться лучше. Прикол в том что по сути часть вебпаги заранее подгружается в виде словаря и поэтому достаточно передать куда более короткие референсы на словарь. Но если уж на то пошло - вебня вообще очень избыточная и скажем заменив теги более короткими представлениями можно нефигово выиграть. ЧСХ это не только работает но один кадр на этом чуть ли не докторскую сделал. Хорошо работает. Но вот только нужда сильно препроцессить и возвращать как было - требует времени. А словарь - относительно халявен, в том плане что по скорости не принципиально референсить ли просто прошлые данные или же заранее подпиханый словарь.

Словарь - это такая оптимизация если характер данных известен. Если это не так то он лишь раздувает либу и ничего не привносит.  По этой причине прошаренные compression contest меряют размер "код для распаковки + сжатые данные". Иначе кто-то снесет половину данных в код и выиграет, "распаковав". Ну это такой совсем частный случай словаря, одноразовый :)

> специфическом словаре, упакованном вместе с данными, кто-то из ранних досовских
> архиваторов именно так и работал...аццки долго ;)

В общем случае внешний словарь имеет смысл только если есть достаточно большой набор однотипных данных, так что перенос некоторошо типового shared куска в либу или рядом себя окупит. Гугл ориентировался на вебню - ну и вынес в такой кусок типовые теги/слова/etc. Почему сабжу так должно юыть нельзя - хз :)

Ответить | Правка | Наверх | Cообщить модератору

46. "Facebook открыл реализацию алгоритма сжатия Zstandard"  +/
Сообщение от arisu (ok), 02-Сен-16, 10:14 
> Поневоле закрадываются сомнения - там все остальное-то нормально сделано?

нормально. просто подобные штуки хоть и не принято сейчас называть «пресс‐релизы», но по сути это именно пресс‐релиз. соответственно, рассказывается о плюсах, умалчивается о минусах и всё такое. потому что надо продать. кому непонятно, что именно продаётся — пусть спускается с небес.

Ответить | Правка | К родителю #21 | Наверх | Cообщить модератору

54. "Facebook открыл реализацию алгоритма сжатия Zstandard"  +/
Сообщение от Аноним (-), 03-Сен-16, 17:26 
Автор zstd должен был стать маркетологом. Но как-то случайно подсел на алгоритмы и програмизм. Это ему настолько вштырило что он послал карьеру маркетолога и занялся алгоритмами сжатия.

Так что он умеет преподнести себя в выгодном свете. Но соль не в том. Он упрямый чувак, хорошо разбирается в оптимизациях и поэтому смог догнаться до высот на которых сломали зубы многие матерые програмеры. Zstd не самый быстрый и не самый плотный. Зато он практичный и серьезно претендует на нишу zlib, который с точки зрения технологий мало ушел от эпохи DOSовых архиваторов. Zstd в той же нише, только лучше. И по скорости распаковки и по достижимой степени сжатия.

Ответить | Правка | Наверх | Cообщить модератору

55. "Facebook открыл реализацию алгоритма сжатия Zstandard"  +/
Сообщение от arisu (ok), 03-Сен-16, 17:30 
а я нигде не писал, что сабж плохой, если что. я просто немного потоптался на форме презентации.
Ответить | Правка | Наверх | Cообщить модератору

59. "Facebook открыл реализацию алгоритма сжатия Zstandard"  +/
Сообщение от Аноним (-), 03-Сен-16, 18:25 
> а я нигде не писал, что сабж плохой, если что. я просто
> немного потоптался на форме презентации.

Топтаться на презентации маркетолога занятие неблагодарное. Маркетологи это умеют. А то что одним маркетологом меньше и одним програмером больше - вообще фича :P.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру