LINUX.ORG.RU
ФорумTalks

Аппаратный ускоритель сортировки и поиска.

 , ,


2

3

Интересно, существуют ли аппаратные ускорители поиска и сортировки?

Например сортировка. Чип состоит из массива ячеек каждый из которых имеет размер 512 байт. параллельно с длинной ячейкой есть короткая содержащая исходный порядковый номер. Каждая ячейка соединёна с той 2 соседними n-1 и n+1. Когда на ячейки приходит сигнал сортировки. Ячейки обмениваются значениями, таким образом каждый такт значения «тонут» и «всплывают». Когда происходит такт при котором обмен не совершался, обмен считается завершённым. Можно считать значения напрямую или считать их исходные номера.

Пример ускорения поиска. Применить ассоциативный кэш, то есть каждая ячейка состоит из ячейки индекса и ячейки данных. Значение является хэшем значения который аппаратно считается при его помещении в ячейку. Если в такой чип загрузить индекс базы данных, то искать значения в нём можно будет буквально за 1 такт.

Неужели таких чипов ещё никто не делал?

Каюсь, думал, что автор Стиви. Перестал разбираться в сортах идиотов.

buddhist ★★★★★
()

Неужели таких чипов ещё никто не делал?

Если хочешь быть в тренде, читай про cache-oblivious algorithms. А для затравки у Кнута про внешнюю сортировку можешь просмотреть.

Manhunt ★★★★★
()
Ответ на: комментарий от imul

Сколько выслать денег?

Пусть составит убедительный бизнес-план сперва :D

Manhunt ★★★★★
()

Лол, это и было в начале прошлого века.

Igron ★★★★★
()

Любишь подрочить на то, в чем вообще ничего не понимаешь?)

Как там тема про пневмопутепроводы по всей планете? Апнем?Г

dk-
()
Ответ на: комментарий от dk-

Как там тема про пневмопутепроводы по всей планете?

Коварный Маск украл идею же. Проклятые копеталисты %)

Nervous ★★★★★
()

Интересно, существуют ли аппаратные ускорители поиска и сортировки?

Давным-давно японцы на ПЛИС делали медианную фильтрацию видео в апертуре 5 х 5 сетью обменных модулей из 3 тома Кнута.

А сейчас на ПЛИС иногда делают сети сортировки те, кому нужно очень узкоспециализированное изделие для работы в жёстком реальном времени, например ранговая фильтрация локационных сигналов.

quickquest ★★★★★
()
Ответ на: комментарий от i-rinat

О, боже. Аппаратный ускоритель пузырьковой сортировки. Это эпик.

В 80-х годах прошлого века у японцев были машины для баз данных с дисковыми аппаратными сортировщиками (диск с 2 или 3 магнитными головками) методом пузырька. ©

quickquest ★★★★★
()

Существуют базы с векторизацией, см. ClickStream

shimshimshim
()

Как уже выше указали - это пузырьковая сортировка. Думаю, лучше бы какую более быструю.

И второе - кому оно надо? Всё равно с значительным объемом данных нам уже понадобится внешний накопитель с правильно организованными структурами данных (индексы там и прочие кеши).

Если в такой чип загрузить индекс базы данных

То это ускорит только работу с ним, а за данными всё равно лезь во внешнюю память. Не спец по БД и этому вашему хайлоду, но думаю - соотношение цены разработки такого решения и выигрыша из категории «нинужно».

то искать значения в нём можно будет буквально за 1 такт

Niet. Или ты хочешь вставить туда компаратор, сравнивающий значения во всех ячейках?

з.ы. куда кидать деньги :-)

alex4321
()
Ответ на: комментарий от alex4321

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

alex4321
()
Ответ на: комментарий от dk-

Как там тема про пневмопутепроводы по всей планете? Апнем?Г

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

Napilnik ★★★★★
()
Ответ на: комментарий от dk-

Там тоже на пожертвованиях, что-то делают, но я совсем не уверен что акционеры сильно наварятся в случае успеха проекта. Всегда же можно в нужный момент первооткрывателей подвинуть:)

Napilnik ★★★★★
()
Ответ на: комментарий от Nervous

Это не светоч, это целый прожектор. Прожектор научной перестройки.

Deleted
()
Ответ на: комментарий от dk-

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

Napilnik ★★★★★
()
Ответ на: комментарий от quickquest

Подозреваю, что это только книжка восьмидесятых годов, а сами железки гораздо старше. В 1983 они там NES выпускали по доступным ценам. Какой смысл в механических компьютерах в 1986-м?

i-rinat ★★★★★
()
Ответ на: комментарий от alex4321

то искать значения в нём можно будет буквально за 1 такт

Niet. Или ты хочешь вставить туда компаратор, сравнивающий значения во всех ячейках?

Нет. Простейший «И» компаратор на каждой ячейке.

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от dk-

Не, я достаточное количество сложностей представляю. Писать должен человек, навроде Дениса, которому «а мне любое море, море по колено, а мне - любые горы по плечу».

Napilnik ★★★★★
()
Ответ на: комментарий от Nervous

алмазные теплопроводы

rezedent12, учись, как надо фонды выбивать! %)

Это никогда не было самоцелью.

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от rezedent12

Не понял идею. Может XOR? Но он сможет только определить равенство/неравенство, но не больше/меньше.

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

alex4321
()
Ответ на: комментарий от alex4321

И тут я понял, что туплю. Если нам нужно только извлечь данные по индексу - да, xor подойдет. Однако объем всё ещё навевает мне сомнения из разряда «а не проще ли держать в кеше помещающуюся в нём часть индекса».

alex4321
()
Ответ на: комментарий от Napilnik

И причём память понадобится какая-то кастомная прямо с интеграцией в нашу схему, а не «внешняя». А то ведь наверняка все преимущества перед процессором с закешированным индексом сожрет. Спецы по железу и хайлоде, ткните меня носом в ошибки.

alex4321
()
Ответ на: комментарий от alex4321

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

Napilnik ★★★★★
()

Определенно надо ферму ASICов заказать тебе!

slaykovsky ★★★
()
Ответ на: комментарий от alex4321

Впрочем, не суть - чтобы отсортировать массив за 1 такт - нам нужно одновременно сравнить значения всех ячеек.

Сравнивать за 1 такт все ячейки - это слишком жирно. Я предлагал делать 1 итерацию массива за 1 такт при сортировке методом «пузырька».

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от i-rinat

Подозреваю, что это только книжка восьмидесятых годов, а сами железки гораздо старше.

Возможно, такие железки были востребованы, когда процессоры были медленными, а память дорогущей.

quickquest ★★★★★
()
Ответ на: комментарий от rezedent12

Сразу оговоримся - я не о применениях вида «ищем среди пары килобайт, но очень быстро и за гарантированное время».

Ну вот и получается что за такт отсортировать - никак. Что до алгоритма - не вижу препятствий к тому, чтобы не приюзать хотя бы какой quicksort (ЕМНИП, будешь уже сортировать не C*N^2 тактов, а за C*N log(N)).

Что до извлечения записи по индексу - вот его по идее можно провести за 1 такт даже для немалых (относительно) объемов. Но если данных много - нам придётся или организовать память под них у себя (подозреваю, недешевое удовольствие - врядли на какую ПЛИС получится всунуть много памяти) или потребуется лезть в внешнюю память (да хоть какой-либо DDR) - но тогда будет ли фатален плюс перед системой из обычного процессора (или нескольких) с кешированным индексом?

alex4321
()
Ответ на: комментарий от alex4321

Я ещё и читаю очень внимательно. Сортировка за такт - да, мой идиотизм.

alex4321
()

Аппаратный замедлитель сгодится? Зато на халяву.

«сортировка на трех лентах»

anto215 ★★
()

Значение является хэшем значения который аппаратно считается при его помещении в ячейку.

коллизии и прочие боли же

n_play
()
Ответ на: комментарий от n_play

Значение является хэшем значения который аппаратно считается при его помещении в ячейку.

коллизии и прочие боли же

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

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от i-rinat

смотрел на трубе разборку авиационной всякой электроники,
да наверное и корабельно-подводная из того же репертуара.
в 60е++ годы,ИМХО, аж бегом делали специализированные механические вычислители.

Про ранний этап ничего не скажу, там вообще всё на реле Теслы и Ампера с Вольтом было :-)

Электроника парахеда 66го года постройки - во всю использовали логику на реле.

Deleted
()
Ответ на: комментарий от rezedent12

Ты лучше делай пометочку: имха, янизнаю, скажите как было.

мы, «достатошно молодое поколение», много чего не знаем о происходившем 100лет назад. А потом начинаются удивленные глазки - как так! 1930е годы, а кухни в Америке выглядят как наши сегодня? О_О миксер, пылесос, тостер О_О, блеять, блендер! Аааааа! кудах-кудах...

Вот смотришь хронику на трубе и охреневаешь.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.