[ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

Аватара пользователя
rssbot
Бот
Сообщения: 6000
ОС: gnu/linux

[ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень

Сообщение rssbot »


Криптографические хэши позволяют отождествить большой набор данных с компактной последовательностью бит фиксированной длины, что значительно упрощает проверку неизменности исходной информации. Недостатком является то, что хаотичная последовательность из нескольких десятков цифр трудно воспринимается человеком, невозможно на глаз сразу определить - изменился ли хэш. Проект Vash, первый релиз которого вышел несколько дней назад, призван устранить данный недостаток, представляя хэши в виде картинок. Код Vash написан на языке Java и распространяется под лицензией AGPLv3. В отличие он ранее предпринимаемых попыток графического представления хэшей, таких как Identicon, визуальное оформление хэшей в Vash значительно более наглядно, лучше воспринимается и запоминается. Если в Identicon изображение формируется из геометрических фигур, то в Vash генерируются более реалистичные изображения. Каждое из изображений обладает своим характером, который сразу бросается в глаза и западает в память.
Изображение
Vash поддерживает генерацию изображений для любых порций данных, от нескольких слов и base64-последовательностей, до криптографических ключей и больших файлов. В качестве начальных данных для формирования изображения берется результат выполнения хэш-функции SHA-512, т.е. с криптографической точки зрения Vash-изображения уникальны на уровне хэша SHA-512. Из дополнительных применений называется верификация ввода номеров кредитных карт. Например, вместо практикуемого отображения части номера кредитной карты (**************1234) гораздо нагляднее вывести хорошо запоминающуюся картинку, которую пользователь сможет мгновенно сверить с полученным аналогичным образом изображением, напечатанным на карте. Еще одной областью использования Vash может стать подтверждение корректности ввода закрытых данных, например, вывод изображения позволит пользователю сразу оценить корректно введен пароль или нет. К сожалению формирование подобных изображений достаточно ресурсоёмкая задача, требующая больших вычислений. Выход виделся в реализации алгоритма генерации изображений с использованием OpenCL, расширений для параллельного программирования с возможностью задействования GPU видеокарт. Вынос вычислительной логики на плечи GPU позволил на несколько порядков ускорить генерацию изображений. По оценке разработчиков работающий на стороне GPU прототип Vash должен работать в 100-500 раз быстрее реализации на языке Си, выполняемой на CPU. Вариант с OpenCL был опробован в реализации на языке Python с использованием библиотеки PyOpenCL. К сожалению, реализовать идею полного привлечения GPU для вычислений в конечном итоге не удалось и разработчики пока ограничились использованием только CPU. Первая проблема всплыла из-за необходимости организации обхода дерева в процессе генерации изображения - необходимый уровень вложенности удалось реализовать только на CPU. Вторая проблема оказалась более серьезной - так как до получения хэша неизвестно какие вычисления потребуются, невозможность предкомпилировать код для GPU и его приходится формировать в процессе создания изображения. Компиляторы OpenCL от компания AMD и Nvidia генерируют очень быстрый и прекрасно оптимизированный код, но сам процесс компиляции занимает слишком много времени. В итоге, генерация изображения на стороне GPU занимает всего 50-100 нс, но на сопутствующие операции тратится около 20-60 секунд времени CPU, что неприемлемо.


Источник: http://www.opennet.ru/opennews/art.shtml?num=31207


оригинал на opennet.ru
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень

Сообщение sash-kan »

QUOTE писал(а):разработчики пока ограничились использованием только CPU
не всё потеряно· можно ведь сэкономить, отказавшись от java·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Janik
Сообщения: 870
Статус: Начлаб
ОС: Debian

Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень

Сообщение Janik »

А про ассемблер забыли?
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень

Сообщение watashiwa_daredeska »

sash-kan писал(а):
16.07.2011 15:39
можно ведь сэкономить, отказавшись от java
На вычислительных задачах Java достаточно эффективна.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень

Сообщение sash-kan »

watashiwa_daredeska писал(а):
17.07.2011 23:19
sash-kan писал(а):
16.07.2011 15:39
можно ведь сэкономить, отказавшись от java
На вычислительных задачах Java достаточно эффективна.
хорошо сформулированное возражение· попробуй опровергни…

да, если измерять «эффективность» только в виде полученной прибыли, то чудесным образом становятся «достаточно эффективными» весьма … ммм, скажем так, _своебразные_ вещи…
типа той же java&k° или проприетарной модели разработки+распространения программ…
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Slimy
Сообщения: 1689
ОС: openSuSE 11.2 GM (GеMор едишн)

Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень

Сообщение Slimy »

sash-kan писал(а):
16.07.2011 15:39
разработчики пока ограничились использованием только CPU
не всё потеряно· можно ведь сэкономить, отказавшись от java·

и на что поменять,на питон которые еще в 5 раз тормознее? Вас это не смущает? Или на перл который тоже никуда не торопится.
Если уже ничего не помогает - прочти инструкцию.
sysinstall - гадость :)
ASUS A6q00Vm Pentium-M 1.7 GHz, 2Gb RAM, 160Gb HDD,
GeForce Go 7300 64Mb video
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5500
ОС: Gentoo

Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень

Сообщение /dev/random »

Slimy писал(а):
18.07.2011 02:36
и на что поменять,на питон которые еще в 5 раз тормознее? Вас это не смущает? Или на перл который тоже никуда не торопится.

А при чём здесь питон с перлом? Для ресурсоёмких задач пока ещё предпочтительны компилируемые языки.
Спасибо сказали:
Аватара пользователя
shau-kote
Сообщения: 417
Статус: злобный хоббит
ОС: Arch

Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень

Сообщение shau-kote »

sash-kan писал(а):
16.07.2011 15:39
не всё потеряно· можно ведь сэкономить, отказавшись от java

/dev/random писал(а):
18.07.2011 03:38
А при чём здесь питон с перлом? Для ресурсоёмких задач пока ещё предпочтительны компилируемые языки.

Просто оставлю это здесь.
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень

Сообщение NickLion »


Это правильно следует назвать не "Java обгоняет по производительности C++", а "Программы на С++, написанные Java-программистами тормозят ещё больше, чем на Java".
Спасибо сказали:
Аватара пользователя
shau-kote
Сообщения: 417
Статус: злобный хоббит
ОС: Arch

Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень

Сообщение shau-kote »

NickLion писал(а):
18.07.2011 06:57
Это правильно следует назвать не "Java обгоняет по производительности C++", а "Программы на С++, написанные Java-программистами тормозят ещё больше, чем на Java".

Ну да, в теории программы, написанные на ассемблере тоже работают быстрее, чем написанные на C.
Только вот когда дело доходит до реальных программ, редкий программист напишет программу на ассемблере, работающую не медленнее чем аналогичная программа, грамотно написанная на C.
От того, что Вы ежа назовёте ужом, он им не станет.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень

Сообщение sash-kan »

тем, у кого на лоб полезли глаза от фантастичности цифр, обязательно следует прочесть и комментарии· например, этот: http://www.w3sys.com/pages.meta/benchmarks.html
откуда следует, что цифры не то чтобы не правильные, а, скажем так, «взяты не из той колонки»·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень

Сообщение watashiwa_daredeska »

sash-kan писал(а):
18.07.2011 01:29
да, если измерять «эффективность» только в виде полученной прибыли
Я смотрю на http://shootout.alioth.debian.org по вычислительным задачам. Java отстает от лидеров всего в 1.5–2 раза, а от C и C++ еще меньше. Тут уже не отвертитесь, что программы на C++ пишут Java-программисты :)
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень

Сообщение sash-kan »

watashiwa_daredeska писал(а):
18.07.2011 10:54
sash-kan писал(а):
18.07.2011 01:29
да, если измерять «эффективность» только в виде полученной прибыли
Я смотрю на http://shootout.alioth.debian.org по вычислительным задачам. Java отстает от лидеров всего в 1.5–2 раза, а от C и C++ еще меньше.
«ну, подумаешь, что наша программа выполняется в несколько раз медленней и потребляет памяти в несколько раз больше, зато… зато… а в америке негров линчуют, вот!»

QUOTE писал(а):Тут уже не отвертитесь, что программы на C++ пишут Java-программисты :)
это не ко мне претензии· я исхожу из того, что большинство программ пишут самые обыкновенные «средненькие» программисты· вне зависимости от используемых языков программирования·

p.s. а давайте посмотрим не на какие-то специализированные тесты, а на то, как оно «в реальной жизни» получается? на вполне обычных «средненьких» программах, написанных вполне обычными «средненькими» программистами·
вот, например, вполне реальная задача, в которой сравниваются не разные реализации библиотек, а просто для каждой реализации проверяется два варианта организации исходных данных· может быть именно поэтому на графиках виден такой дикий разрыв во времени выполнения?
p.p.s. только не надо повторять слова izen-а про «старые версии», «отсутствие оптимизаций», «не-промышленность» и т.п., ладно?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень

Сообщение Voral »


Приведу ресур где решаются одни и теже задачи на C/C++/Pascal/Java. ЕСли полистать задачи и статистику решений. То если решения на Java по времени отстают не на долго, то уж памяти просто жрут.

http://acm.timus.ru/status.aspx?space=1&...d&count=100
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень

Сообщение NickLion »

watashiwa_daredeska писал(а):
18.07.2011 10:54
sash-kan писал(а):
18.07.2011 01:29
да, если измерять «эффективность» только в виде полученной прибыли
Я смотрю на http://shootout.alioth.debian.org по вычислительным задачам. Java отстает от лидеров всего в 1.5–2 раза, а от C и C++ еще меньше. Тут уже не отвертитесь, что программы на C++ пишут Java-программисты :)

В реальных задачах и серьёзных тестах - да, согласен, но однозначно не приведённый тест. Во-первых, там взята одна колонка из выдачи time, во-вторых, на моём компе hash.cpp выигрывает прилично у hash.java при любом запуске (опции из примера брал, g++ -O2 компилиил). Далее, в том же hash.cpp второй цикл на с++ делает совершенно не то, что в java - не проверяет наличие ключа в хеше, а берёт значение по ключу, а если такого нет - добавляет. Замена на find+убрать лишний strdup (не нужный во втором случае) - ещё почти в 2 раза быстрее стала прога.
Согласен с method-call, что в java может быстрее работать (хотя не смотрел ещё) - потому что в java все методы виртуальные и если там не забабахать какой-нибудь оптимизации, то всё будет совсем плачевно (в .net знаю виртуальные методы могут оптимизироваться дополнительными проверками на часто используемые методы для того, чтобы предсказание ветвления процессора работало). А в с++ виртуальный метод - это просто виртуальный метод как он есть.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень

Сообщение watashiwa_daredeska »

NickLion писал(а):
18.07.2011 17:28
hash.cpp выигрывает прилично у hash.java
Что такое hash.cpp и hash.java?

sash-kan писал(а):
18.07.2011 12:41
как оно «в реальной жизни» получается? на вполне обычных «средненьких» программах, написанных вполне обычными «средненькими» программистами·
Да смотрите на что хотите, однако это не отменяет того факта, что оптимизировать можно не только сменой ЯП, но и повышением собственного скилла. Ну, а если сменой ЯП, то Intel Fortran — ваш выбор, а не C/C++.

sash-kan писал(а):
18.07.2011 12:41
вот, например, вполне реальная задача,
Не вычислительная.

sash-kan писал(а):
18.07.2011 12:41
сравниваются не разные реализации библиотек, а просто для каждой реализации проверяется два варианта организации исходных данных
Именно что разные реализации, на разных языках.

sash-kan писал(а):
18.07.2011 12:41
для каждой реализации проверяется два варианта организации исходных данных· может быть именно поэтому на графиках виден такой дикий разрыв во времени выполнения?
Хм… Если сравниваются не разные бибилиотеки, а разные способы организации вычислений в XSLT… Ты имеешь в виду тот дикий разрыв в 2 раза у libxslt? Других диких разрывов при такой постановке задачи я там не вижу.
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень

Сообщение NickLion »

watashiwa_daredeska писал(а):
18.07.2011 19:05
NickLion писал(а):
18.07.2011 17:28
hash.cpp выигрывает прилично у hash.java
Что такое hash.cpp и hash.java?

Ну, это один из тестов по той ссылке, что дал shau-kote. Там же логи можно посмотреть.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень

Сообщение sash-kan »

watashiwa_darede... писал(а):
18.07.2011 19:05
Не вычислительная.
ага, понял·
«на порядки java отстаёт в скорости и потреблении памяти лишь в не-вычислительных задачах, а в вычислительных — всего лишь в разы» (улыбка)
ну, надеюсь, прикидывать, сколь часто в реальной жизни встречаются задачи чисто вычислительные и «все остальные», мы не будем?

watashiwa_darede... писал(а):
18.07.2011 19:05
Ну, а если сменой ЯП, то Intel Fortran — ваш выбор, а не C/C++.
fortran и без intel-а вполне себе производителен· это разве плохо?

watashiwa_darede... писал(а):
18.07.2011 19:05
Других диких разрывов при такой постановке задачи я там не вижу.
дикие разрывы наличествуют между двумя парами средних и двумя парами крайних графиков·
нет, я далёк, конечно, от мысли, что java на два порядка медленнее чем <не знаю, на чём там эти libxslt и msxml написаны> в большинстве не-вычислительных задач, но картинка получается забавная, согласись·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень

Сообщение watashiwa_daredeska »

sash-kan писал(а):
18.07.2011 20:41
«на порядки java отстаёт в скорости и потреблении памяти лишь в не-вычислительных задачах, а в вычислительных — всего лишь в разы» (улыбка)
ну, надеюсь, прикидывать, сколь часто в реальной жизни встречаются задачи чисто вычислительные и «все остальные», мы не будем?
Ты меня удивляешь, Саша. Во-первых, речь изначально шла только о времени выполнения, а не об объеме памяти. Это, как бы, совершенно разные вещи. Во-вторых, никаких призывов писать на Java всё подряд и даже хоть что-нибудь, я не делал, поэтому все эти инсинуации насчет частоты встречаемости вычислительных задач — не в тему. В-третьих, в 1.5–2 раза отставание у Java от Fortran, а если померять отставание от C, то получится гораздо меньше (ибо сам C отстает от Fortran до 1.5 раз). Пусть в масштабах каких-нибудь мега-числодробилок это и имеет значение, но в домашних условиях это будет едва различимо.

sash-kan писал(а):
18.07.2011 20:41
дикие разрывы наличествуют между двумя парами средних и двумя парами крайних графиков·
Тогда я вообще не понимаю твоей логики. Ты говоришь, что не сравниваешь разные библиотеки, но таки их сравниваешь. При этом, не в тему.

NickLion писал(а):
18.07.2011 19:24
Ну, это один из тестов по той ссылке, что дал shau-kote.
Там вообще другое сравнивается, к вычислениям не имеющее никакого отношения.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень

Сообщение sash-kan »

watashiwa_darede... писал(а):
19.07.2011 13:36
Во-первых, речь изначально шла только о времени выполнения, а не об объеме памяти. Это, как бы, совершенно разные вещи.
разные, конечно· но почему-то (иногда?) взаимосвязанные· как-то так в жизни получается…

watashiwa_darede... писал(а):
19.07.2011 13:36
Во-вторых, никаких призывов писать на Java всё подряд и даже хоть что-нибудь, я не делал
гхм· я тоже не делал призывов [ничего] не писать на java· мир-дружба-жвачка?

watashiwa_darede... писал(а):
19.07.2011 13:36
поэтому все эти инсинуации насчет частоты встречаемости вычислительных задач — не в тему.
ну вот уж и «инсинуации»… я просто обозначил (на всякий случай) направление, в котором можно увязнуть по самые уши — мне оно (это направление) ни разу не интересно·

watashiwa_darede... писал(а):
19.07.2011 13:36
Ты говоришь, что не сравниваешь разные библиотеки, но таки их сравниваешь.
я говорю, что в приведённом тесте «сравнивались не разные реализации библиотек», а кое-что другое· просто цифры получились весьма забавные…
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень

Сообщение NickLion »

watashiwa_daredeska писал(а):
19.07.2011 13:36
NickLion писал(а):
18.07.2011 19:24
Ну, это один из тестов по той ссылке, что дал shau-kote.
Там вообще другое сравнивается, к вычислениям не имеющее никакого отношения.

По той ссылке, что дал shau-kote, сравнивается производительность разных элементов, которые часто используются на практике. В том числе hash map, о котором я "ругался". Я где-то говорил о математических вычислениях?
Спасибо сказали: