И не слова про то что это может быть бесполезным. Во первых такие скорости достигаются на объемах более 2М чисел. Вот лично я на практике больше 64К никогда не сортировал. Может ктонибудь из присудствующих сортирует 2М чисел? Было бы интересно услышать. Во вторых перед сортировкой эти данные еще отправить на GPU надо.
PS Реализация неплохая конечно, уделывает radixSort из сэмплов в раза 1.5 на моем GTX470.
У Вас в кеш-хранилище информация о 10 миллионах пользователей (подключений, ставок, etc) (несортированная, т.к. это мгновенный слепок активности), которую нужно перекинуть в анализатор статистики.
Известно, что анализатор статистики в несколько раз быстрее работает с сортированными данными (у него даже ключик специальный есть, значительно улучшающий скорость работы за счет использования других алгоритмов)
Надеяться на сортировщик анализатора нет смысла — так как анализатор довольно слабая машина, да и вообще — его задача хранить эту статистику, а не заниматься ее упорядочиванием.
Поэтому втыкаем в кешер одну видяшку и отдаем ей на откуп статистику.
Конечно, когда у Вас 1 кешер и один анализатор, разница между 1мс и 0.3мс незаметна, но когда стоит уже 10кешеров на один анализатор, такой буст уже играет роль.
Где это используется?
Скажу по секрету всей хабре — в крупных букмекерских конторах, например.
Я конечно не спорю, что это информативный эксперимент, в очередной раз показывающий применимость и эффективность графических ускорителей.
Однако, вы только представьте, сколько начинающих «программистов» теперь, почитав эту новость, укрепились в уверенности, что сортировка есть божественная операция, и будут теперь ее тыкать везде, где есть CUDA, опираясь на то, как она быстра. Вспомните, сколько раз на вопрос «найти максимальный элемент в массиве» вы слышали «отсортируем по убыванию и возьмем первый...»
Страшно представить, какой это толчок ламерству…
кроме, в большей части академических, достижений CUDA хочется более реальных вещей:
например утилита для прикручивания CUDA сортировки(может и не только сортировки) к MSSQL/Oracle/MySQL/Postgres
>> Почему сервера то «не в кассу»
Веб-сервера. Упомянутые выше MSSQL/Oracle/MySQL/Postgres и т.д.
CUDA ориентирована на плотные параллельные вычисления — рендер/HPC а не на pointer-chasing и 1-поточный код.
Любите микроскопом гвозди забивать? Вперёд
>>Посмотрите на gpgpu.org
Ну и посмотрите на своей странице список тегов.
Никакого веба и «серверных» задач
Математика/hpc/рендер
Высокопроизводительная сортировка (radix) на CUDA