[ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень
Модератор: Модераторы разделов
-
rssbot
- Бот
- Сообщения: 6000
- ОС: gnu/linux
[ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень
Криптографические хэши позволяют отождествить большой набор данных с компактной последовательностью бит фиксированной длины, что значительно упрощает проверку неизменности исходной информации. Недостатком является то, что хаотичная последовательность из нескольких десятков цифр трудно воспринимается человеком, невозможно на глаз сразу определить - изменился ли хэш. Проект 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 переводит наглядную визуализацию хэшей на новый уровень
не всё потеряно· можно ведь сэкономить, отказавшись от java·QUOTE писал(а):разработчики пока ограничились использованием только CPU
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Janik
- Сообщения: 870
- Статус: Начлаб
- ОС: Debian
Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень
А про ассемблер забыли?
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Опыт - это когда все получается с первого раза.
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень
На вычислительных задачах Java достаточно эффективна.
Мои розовые очки
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень
хорошо сформулированное возражение· попробуй опровергни…watashiwa_daredeska писал(а): ↑17.07.2011 23:19На вычислительных задачах Java достаточно эффективна.
да, если измерять «эффективность» только в виде полученной прибыли, то чудесным образом становятся «достаточно эффективными» весьма … ммм, скажем так, _своебразные_ вещи…
типа той же java&k° или проприетарной модели разработки+распространения программ…
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Slimy
- Сообщения: 1689
- ОС: openSuSE 11.2 GM (GеMор едишн)
Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень
и на что поменять,на питон которые еще в 5 раз тормознее? Вас это не смущает? Или на перл который тоже никуда не торопится.
Если уже ничего не помогает - прочти инструкцию.
sysinstall - гадость :)
ASUS A6q00Vm Pentium-M 1.7 GHz, 2Gb RAM, 160Gb HDD,
GeForce Go 7300 64Mb video
sysinstall - гадость :)
ASUS A6q00Vm Pentium-M 1.7 GHz, 2Gb RAM, 160Gb HDD,
GeForce Go 7300 64Mb video
-
/dev/random
- Администратор
- Сообщения: 5500
- ОС: Gentoo
-
shau-kote
- Сообщения: 417
- Статус: злобный хоббит
- ОС: Arch
Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень
/dev/random писал(а): ↑18.07.2011 03:38А при чём здесь питон с перлом? Для ресурсоёмких задач пока ещё предпочтительны компилируемые языки.
Просто оставлю это здесь.
-
NickLion
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень
Это правильно следует назвать не "Java обгоняет по производительности C++", а "Программы на С++, написанные Java-программистами тормозят ещё больше, чем на Java".
-
shau-kote
- Сообщения: 417
- Статус: злобный хоббит
- ОС: Arch
Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень
Ну да, в теории программы, написанные на ассемблере тоже работают быстрее, чем написанные на C.
Только вот когда дело доходит до реальных программ, редкий программист напишет программу на ассемблере, работающую не медленнее чем аналогичная программа, грамотно написанная на C.
От того, что Вы ежа назовёте ужом, он им не станет.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень
тем, у кого на лоб полезли глаза от фантастичности цифр, обязательно следует прочесть и комментарии· например, этот: http://www.w3sys.com/pages.meta/benchmarks.html
откуда следует, что цифры не то чтобы не правильные, а, скажем так, «взяты не из той колонки»·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень
Я смотрю на http://shootout.alioth.debian.org по вычислительным задачам. Java отстает от лидеров всего в 1.5–2 раза, а от C и C++ еще меньше. Тут уже не отвертитесь, что программы на C++ пишут Java-программисты :)
Мои розовые очки
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень
«ну, подумаешь, что наша программа выполняется в несколько раз медленней и потребляет памяти в несколько раз больше, зато… зато… а в америке негров линчуют, вот!»watashiwa_daredeska писал(а): ↑18.07.2011 10:54Я смотрю на 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 переводит наглядную визуализацию хэшей на новый уровень
Приведу ресур где решаются одни и теже задачи на 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 © ?
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 переводит наглядную визуализацию хэшей на новый уровень
watashiwa_daredeska писал(а): ↑18.07.2011 10:54Я смотрю на 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 переводит наглядную визуализацию хэшей на новый уровень
Что такое hash.cpp и hash.java?
Да смотрите на что хотите, однако это не отменяет того факта, что оптимизировать можно не только сменой ЯП, но и повышением собственного скилла. Ну, а если сменой ЯП, то Intel Fortran — ваш выбор, а не C/C++.
Не вычислительная.
Именно что разные реализации, на разных языках.
Хм… Если сравниваются не разные бибилиотеки, а разные способы организации вычислений в XSLT… Ты имеешь в виду тот дикий разрыв в 2 раза у libxslt? Других диких разрывов при такой постановке задачи я там не вижу.
Мои розовые очки
-
NickLion
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень
Ну, это один из тестов по той ссылке, что дал shau-kote. Там же логи можно посмотреть.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень
ага, понял·
«на порядки java отстаёт в скорости и потреблении памяти лишь в не-вычислительных задачах, а в вычислительных — всего лишь в разы» (улыбка)
ну, надеюсь, прикидывать, сколь часто в реальной жизни встречаются задачи чисто вычислительные и «все остальные», мы не будем?
fortran и без intel-а вполне себе производителен· это разве плохо?watashiwa_darede... писал(а): ↑18.07.2011 19:05Ну, а если сменой ЯП, то Intel Fortran — ваш выбор, а не C/C++.
дикие разрывы наличествуют между двумя парами средних и двумя парами крайних графиков·watashiwa_darede... писал(а): ↑18.07.2011 19:05Других диких разрывов при такой постановке задачи я там не вижу.
нет, я далёк, конечно, от мысли, что java на два порядка медленнее чем <не знаю, на чём там эти libxslt и msxml написаны> в большинстве не-вычислительных задач, но картинка получается забавная, согласись·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень
Ты меня удивляешь, Саша. Во-первых, речь изначально шла только о времени выполнения, а не об объеме памяти. Это, как бы, совершенно разные вещи. Во-вторых, никаких призывов писать на Java всё подряд и даже хоть что-нибудь, я не делал, поэтому все эти инсинуации насчет частоты встречаемости вычислительных задач — не в тему. В-третьих, в 1.5–2 раза отставание у Java от Fortran, а если померять отставание от C, то получится гораздо меньше (ибо сам C отстает от Fortran до 1.5 раз). Пусть в масштабах каких-нибудь мега-числодробилок это и имеет значение, но в домашних условиях это будет едва различимо.sash-kan писал(а): ↑18.07.2011 20:41«на порядки java отстаёт в скорости и потреблении памяти лишь в не-вычислительных задачах, а в вычислительных — всего лишь в разы» (улыбка)
ну, надеюсь, прикидывать, сколь часто в реальной жизни встречаются задачи чисто вычислительные и «все остальные», мы не будем?
Тогда я вообще не понимаю твоей логики. Ты говоришь, что не сравниваешь разные библиотеки, но таки их сравниваешь. При этом, не в тему.
Там вообще другое сравнивается, к вычислениям не имеющее никакого отношения.
Мои розовые очки
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: [ON] Проект Vash переводит наглядную визуализацию хэшей на новый уровень
разные, конечно· но почему-то (иногда?) взаимосвязанные· как-то так в жизни получается…watashiwa_darede... писал(а): ↑19.07.2011 13:36Во-первых, речь изначально шла только о времени выполнения, а не об объеме памяти. Это, как бы, совершенно разные вещи.
гхм· я тоже не делал призывов [ничего] не писать на java· мир-дружба-жвачка?watashiwa_darede... писал(а): ↑19.07.2011 13:36Во-вторых, никаких призывов писать на 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 переводит наглядную визуализацию хэшей на новый уровень
watashiwa_daredeska писал(а): ↑19.07.2011 13:36Там вообще другое сравнивается, к вычислениям не имеющее никакого отношения.
По той ссылке, что дал shau-kote, сравнивается производительность разных элементов, которые часто используются на практике. В том числе hash map, о котором я "ругался". Я где-то говорил о математических вычислениях?
