Project

General

Profile

NoSQL,деревья, сортировки, тексты, криптография

Added by SnowCat over 11 years ago

Сейчас наблюдается очень интересный тренд, с использованием в базах данных архитектуры NoSQL.
http://ru.wikipedia.org/wiki/NoSQL

Подобного рода базы данных, весьма полезны в 80% случаях использования баз данных (на мой взгляд).
И у меня вопрос, по процессору, есть ли у вас оптимизированные алгоритмы поиска по хешу, деревьям и сортировки?
Интересно было бы посмотреть сравнительные тесты на скорость работы.

Если ваша платформа покажет в этом хорошие результаты (как минимум преимущества в 2 раза), то для WEB серверов или центров обработки данных вполне пригодится.


Replies (5)

RE: NoSQL,деревья, сортировки, тексты, криптография - Added by Smer4 over 11 years ago

Дел в том что в вышеописанном есть злой конкурент...
Перенос базы данных на GPU по самым скромным подсчетам ускоряет SELECT в 20 раз, в хороших условиях
70, исполнение же самой операции поиска без прочих процессов запуска, остановки, копирования памяти и т.п.
вплоть до 200х раз. Сортировка в O(log(logn)). Криптография практически в константное время. На крипточипе еще и быстрее.
Графы в O(n). Перспективны использование для серверов, CEP, ИИ.
Причем технологии реально существуют и распостраняются, появляется все больше програм с поддержкой CUDA, OpenCl.
Производительность видеокарт тоже развивается бурно при огромном спросе на рынке.
Так что мультиклету прийдется туго в ближайшее время, но вы не растраивайтесь.
Для некоторых задач с высокой дивергенсией все же эти клетки могут быть лучше.

RE: NoSQL,деревья, сортировки, тексты, криптография - Added by m.bakhterev over 11 years ago

Дел в том что в вышеописанном есть злой конкурент...
Перенос базы данных на GPU по самым скромным подсчетам ускоряет SELECT в 20 раз, в хороших условиях
70, исполнение же самой операции поиска без прочих процессов запуска, остановки, копирования памяти и т.п.
вплоть до 200х раз.

А это подсчёты, или всё-таки реально работающие системы? Просто из общения с людьми, которые на GPU считают, следует, что не всё так радужно, как хотелось бы NVIDIA и AMD. if-ы в алгоритмах существуют, а с if-ами GPU справляются относительно плохо. Не понятно, за счёт чего SELECT может ускоряться аж в 70 раз. Даже если это совсем какой-нибудь тривиальный SELECT, в котором проверяется только одно условие. Конечно, его можно сделать каким-нибудь параллельным Scan-ом, Map/Reduce-ом или foldr-ом, но, ведь, остаются доступы в память ещё. В базах данных именно ПСП сдерживающий фактор, а не производительность, собственно, процессоров. Неужели у GPU в 70 раз больше ПСП, чем у серверных Xeon-ов или Opteron-ов?

У MCp, кстати, с ПСП памяти всё может быть в перспективе очень хорошо (пока, наверное, я не могу об этом рассказывать).

Сортировка в O(log(logn)). Криптография практически в константное время. На крипточипе еще и быстрее.
Графы в O(n). Перспективны использование для серверов, CEP, ИИ.

Эмс. А откуда берётся ускорение сортировки в O(log(logn)), если не секрет? Вроде как, для сортировки доказано, что быстрее O(n*logn) сортировать нельзя (ну, речь о сложной сортировке, а не о radix-sort целочисленных значений). И каким образом графы ускоряются в O(n) тоже не очень понятно. Ведь, GPU - это просто массово параллельный компьютер. Исполнение алгоритма он может ускорить, максимум, в O(1) раз. Никакой магии там нет. Или же я отстал от технологий? Было бы очень интересно почитать обо всём этом.

Причем технологии реально существуют и распостраняются, появляется все больше програм с поддержкой CUDA, OpenCl.
Производительность видеокарт тоже развивается бурно при огромном спросе на рынке.

Это действительно так. O(1), которую дают GPU очень большая. В некоторых случаях, действительно, даже до 200 раз ускорение можно получить. Лично это выжимал. Но это не на базах данных, а на счётных алгоритмах. Впрочем, их тоже много. Ну, и кое-что векторно-потоковое в MCp тоже будет. Примерно на уровне AVX.

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

А зачем расстраиваться. Во-первых, есть куча задач с непредсказуемыми ветвлениями, для которых лучше клеток пока ничего не придумано (из-за особенностей механизма переходов по параграфам в процессорах). И эти задачи очень важны. И за счёт умных ветвлений в алгоритмах даже GPU можно уделать. За счёт дополнительного анализа можно ускорить сходимость некоторых вычислительных методов: со сложными if-ами алгоритм может сходится за 10 итераций, а без сложных if-ов за 1000 (речь о реальном коде). GPU разгрызёт последний вариант в 200 раз быстрее, чем процессор. Но процессор на "умном" варианте вычисления всё-равно получит результат быстрее, а GPU на таком коде покажет плохую скорость.

Во-вторых, надо подождать момента, когда наши инженеры построят реконфигурируемый процессор. Чует моё подсознание, что на самом деле, MCp - это первый действительно универсальный процессор, в том смысле, что он может, в зависимости от настроек, работать как в CPU-, так и в GPU-подобных режимах.

RE: NoSQL,деревья, сортировки, тексты, криптография - Added by overclocker over 11 years ago

К компании мультиклет имею ровно никакого отношения. Но давайте не превращать технический форум, в базар домыслов. Всё же вы разговариваете со специалистами, которые имеют высшее образование и продолжают работать в этой области.
Под "сложной" сортировкой имеется в виду сортировка элементов, над которыми определена только операция сравнения. Её теоретический предел О(n*log n).
Кэш-память не спасает от непредсказуемых обращений к БД (при БД промышленных масштабах), спасает только быстрая дисковая подсистема.

RE: NoSQL,деревья, сортировки, тексты, криптография - Added by Smer4 over 11 years ago

А да я че то не так написал. Там любую сортировку можно привести к радикс или битоник соответственно да n*log(n) элементов на log(n) итераций из за оптимизации локальной памяти.
Графы имеелся ввиду процессинг начиная сразу с разных "нод" соответственно не точная оценка n траверсия графа а для секвенциального вообше не определена.
По поводу ifов - да это проблема но можно разные трюки придумать. Сделать чтоб ифы шли без ворп дивергенсии или сделать так чтоб логически делались разные операции а физически одни операции только с разными цифрами. Как то заумно этот прием называется, забыл. Вообщем, вам может понадобиться вообще минимум 32 ядра которые должны проверять остальные, сделали ли те команды.

В худшем случае одно ядро что то делает а остальные ждут. Откуда следует что просто бросать какие угодно команды в разные клетки нельзя, надо предворительно провести (компилятором) анализ и распределить какие команды в какие ядра идут, временами потребуется кидать не в том порядке в каком программист написал. Возможен ли вообще деад-лок, чтоб все клетки ждали друг друга? Тогда в результате исполнения якобы правильной программы надо будет power off.

RE: NoSQL,деревья, сортировки, тексты, криптография - Added by Zveruga over 11 years ago

m.bakhterev@multiclet wrote:

Во-вторых, надо подождать момента, когда наши инженеры построят реконфигурируемый процессор. Чует моё подсознание, что на самом деле, MCp - это первый действительно универсальный процессор, в том смысле, что он может, в зависимости от настроек, работать как в CPU-, так и в GPU-подобных режимах.

Согласен с вами. У меня такое чувство появилось сразу как осознал архитектуру Мультиклета. У реконфигурируемого параллелизма будет больше чем у любых других архитектур. Он будет обладать и программным параллелизмом, то что сейчас есть в SIMD и естественным аппаратным.

    (1-5/5)