[ON] Открыт код, позволяющий использовать GPU для оптимизации сортировки

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

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

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

[ON] Открыт код, позволяющий использовать GPU для оптимизации сортировки

Сообщение rssbot »


В рамках проекта back40computing подготовлен работающий механизм сортировки большого объема данных, использующий для ускорения технологию CUDA (Compute Unified Device Architecture), позволяющую вынести некоторые вычислительные задачи на плечи графического процессора. Разработка интересна прежде всего, тем, что представленный алгоритм SRTS Radix Sorting опровергает бытующее мнение о низкой эффективности использования GPU для оптимизации задач, связанных с сортировкой. На обычном компьютере с современной видеокартой NVIDIA GeForce GTX480 представленный код обеспечивает производительность, позволяющую сортировать несколько миллиардов 32-разрядных целых чисел в секунду, что в несколько раз превышает скорость работы самых быстрых алгоритмов сортировки, работающих с привлечением обычного CPU.
Изображение
Из ограничений, алгоритма отмечается возможность сортировки только ключей фиксированной длины. В частности поддерживается сортировка всех численных типов C/C++, таких как signed char, float, unsigned long long, а также структурированных типов по ключу фиксированной длины. Примечательно, что алгоритм обеспечивает до 80% экономии ресурсов при сортировке близких ключей, содержащих одинаковый набор цифр (например, 1112 и 1115). При сортировке чисел с плавающей точкой или знаковых типов (float, int, double и т.п.) замедление относительно беззнаковых целых той же длины составляет всего 0.5-1.5%.


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


оригинал на opennet.ru
Спасибо сказали:
Аватара пользователя
Denjs
Сообщения: 1685
ОС: SuSe 10.2

Re: [ON] Открыт код, позволяющий использовать GPU для оптимизации сортировки

Сообщение Denjs »

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

хотя мне кажется для такого количества процессоров и "пузырек" летать будет)))
QDroid - Среда исполнения и фреймворк для QtScript.
OTPD - Открытые драйвера промышленных принтеров чеков и этикеток (кроссплатформенная подсистема печати).
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: [ON] Открыт код, позволяющий использовать GPU для оптимизации сортировки

Сообщение Bluetooth »

Denjs писал(а):
30.08.2010 18:38
хотя мне кажется для такого количества процессоров и "пузырек" летать будет)))

С пузырем-то все летать будет (:


А если честно,то меня больше всего беспокоит, что CUDA поддерживается только NV и нет никаких шансов на поддержку кем-то еще.
Спасибо сказали:
hippi90
Сообщения: 83
ОС: Debian testing

Re: [ON] Открыт код, позволяющий использовать GPU для оптимизации сортировки

Сообщение hippi90 »

Denjs писал(а):
30.08.2010 18:38
я так чувствую, что скоро и отечественный наработки по параллельному программированию, созданные ещё в советское время окажутся применимы и даже могут быть реализованы на практике... а то нам читали курсе на четвертом параллельное програмирование... как оказалось таких машин нет, даже имитатор пока строить никто не хочет.... весь курс посвящен тому, как программировать машины у которых несколько десятков паралельных процессоров))) заставить их работать сообща - это не совсем классика)))

хотя мне кажется для такого количества процессоров и "пузырек" летать будет)))

Простите мою неосведомленность, мои познания в архитектуре компьютеров ограничиваются Таненбаумом. Но разве современные суперкомпьютеры не имеют несколько сотен параллельно работающих процессоров?
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: [ON] Открыт код, позволяющий использовать GPU для оптимизации сортировки

Сообщение eddy »

hippi90 писал(а):
30.08.2010 23:48
Но разве современные суперкомпьютеры не имеют несколько сотен параллельно работающих процессоров?

Их там десятки тысяч. И многопроцессорные компьютеры существуют уже давно. Даже на первых пнях делали четырехпроцессорные серверы. Двухпроцессорные же - вообще "попса".

Просто дело в том, что в одной современной видеокарте очень много GPU, что позволяет получить бюджетный вариант "суперкомпьютера", а при наличии трех видеокарт и соответствующей материнки - собрать свой "кластер" :).
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Аватара пользователя
Denjs
Сообщения: 1685
ОС: SuSe 10.2

Re: [ON] Открыт код, позволяющий использовать GPU для оптимизации сортировки

Сообщение Denjs »

hippi90 писал(а):
30.08.2010 23:48
Denjs писал(а):
30.08.2010 18:38
я так чувствую, что скоро и отечественный наработки по параллельному программированию, созданные ещё в советское время окажутся применимы и даже могут быть реализованы на практике... а то нам читали курсе на четвертом параллельное програмирование... как оказалось таких машин нет, даже имитатор пока строить никто не хочет.... весь курс посвящен тому, как программировать машины у которых несколько десятков паралельных процессоров))) заставить их работать сообща - это не совсем классика)))

хотя мне кажется для такого количества процессоров и "пузырек" летать будет)))

Простите мою неосведомленность, мои познания в архитектуре компьютеров ограничиваются Таненбаумом. Но разве современные суперкомпьютеры не имеют несколько сотен параллельно работающих процессоров?

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

процессоры сгруппированы в слои. за один такт первый слой слой обрабатывает входной "слой" данных - каждый процессор свой участок - свои *сколько-то* параметров. Выход передается на следующий слой процессоров... как-то так, есл мне память не изменяет... )
QDroid - Среда исполнения и фреймворк для QtScript.
OTPD - Открытые драйвера промышленных принтеров чеков и этикеток (кроссплатформенная подсистема печати).
Спасибо сказали:
hippi90
Сообщения: 83
ОС: Debian testing

Re: [ON] Открыт код, позволяющий использовать GPU для оптимизации сортировки

Сообщение hippi90 »

Если мне не изменят память, это многоскалярные или векторные системы?
Спасибо сказали: