Сейчас на форуме: tyns777, zds, JustLife (+3 невидимых)

 eXeL@B —› Программирование —› Реализация параллельной сортировки
Посл.ответ Сообщение

Ранг: 369.8 (мудрец), 400thx
Активность: 0.390
Статус: Участник

Создано: 14 января 2010 16:00
· Личное сообщение · #1

Кто-нибудь видел хорошую реализацию распараллеленного QuickSort на неприплюснутом си? Интересуют реализации на базе OpenMP или Win32 threads хорошо масштабирующиеся как минимум на 16 процессоров.
Неохото изобретать велоспед, но длительное гугление ничего подходящего не дало.

-----
PGP key <0x1B6A24550F33E44A>





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 14 января 2010 17:32
· Личное сообщение · #2

sourceforge.net ??? Чтонибудь типа sourceforge.net/projects/stringbsts/files/caqsort-sel.tar.gz/download Sequential and parallel implementation of string quicksorts .. может там что еще поискать

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




Ранг: 369.8 (мудрец), 400thx
Активность: 0.390
Статус: Участник

Создано: 14 января 2010 17:53
· Личное сообщение · #3

mak
Я кажется просил не приплюснутый си. Чтобы не терять время, сразу скажу, что гугл и sourceforge перехожены вдоль и поперек. Найдена целая куча приплюснутых реализаций, си реализации для pthread и MPI, а также куча глючных и тормозных примеров на форумах.
Всё это можно допилить до нормального вида, но не хочется терять время, потому я и создал этот топик.
В идеале мне нужна библиотека реализующая функцию идеентичную CRTшному qsort, быстрая, компактная и собирающаяся в VS2008 без сторонних библиотек и лишних телодвижений.
Пожалуйста, не тратьте зря моё и своё время, не кидайте заведомо бесполезные ссылки.

-----
PGP key <0x1B6A24550F33E44A>




Ранг: 10.6 (новичок)
Активность: 0.010
Статус: Участник

Создано: 15 января 2010 00:14
· Личное сообщение · #4

> Я кажется просил не приплюснутый си.
А что мешает переписать под Си? Разница ведь небольшая. Компилируешь в Си-компиляторе и отзываешься на каждую найденную "ошибку". Конечно, если исходник с классами, тот тут уже ничего не получится. Думаю, что именно поэтому ты не можешь найти именно Си-исходник, потому что Си++ легко превратить в Си.



Ранг: 61.4 (постоянный), 1thx
Активность: 0.020
Статус: Участник

Создано: 15 января 2010 00:20
· Личное сообщение · #5

думаю ntldr разбирается что просто сконвертить, а что нет




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 15 января 2010 00:38
· Личное сообщение · #6

вот проблема! из с++ в C перевести
лень посидеть немного?
AndreyMust19 пишет:
Разница ведь небольшая.

+1

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 15 января 2010 01:19
· Личное сообщение · #7

Isaev пишет:
вот проблема! из с++ в C перевести

Та ну какое "немного посидеть"? Если используется какой-то Win32 Threads метод, а в С++ долбанные авторы написали долбанные коды с такими же долбанными классами, из-за которых теряется суть алгоритма, то проще уже с нуля писать, ем это перегонять.

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 15 января 2010 01:30
· Личное сообщение · #8

/offtop:
1) Неохото - пишется с окончанием "а".
2) идеентичную - с одной "е".

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

По делу:
У тебя кроссплатформенная версия продукта будет ? Если нет, то почему нельзя найти худо-бедно работающую реализацию на ненавистном С++ и не сконверить в библиотеку с объектным кодом ? Которую можно прицепить соправодив ее инклудом.

-----
My love is very cool girl.





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 15 января 2010 01:32 · Поправил: mak
· Личное сообщение · #9

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

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




Ранг: 369.8 (мудрец), 400thx
Активность: 0.390
Статус: Участник

Создано: 15 января 2010 04:09
· Личное сообщение · #10

AndreyMust19 пишет:
А что мешает переписать под Си?

Лень мешает, знаете ли. Я вроде ясно сказал, хочу библиотеку чтобы работало из коробки, и не хочу тратить своё время. К тому же используемая директива #pragma omp task не поддерживается MSVC, а её замена на #pragma omp sections тормозит хуже обычной однопоточной сортировки. Короче говоря - нахуй.

theCollision пишет:
theCollision

Брысь нах из топика, флудер грёбаный. Такие все блять умные, возьми да сконверти, представляю себе, в какое дерьмовое месиво превратится код если постоянно так делать. Я кажется просил найти код под определенные требования, а не обсуждать разумность этих требований.

З.Ы. была бы доступна #pragma omp task, я бы в два счета распараллелил рекурсивный qsort. А так получается большая жопа с синхронизацией, из-за чего параллельный qsort получается в 10 раз медленнее последовательного.

-----
PGP key <0x1B6A24550F33E44A>





Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 15 января 2010 19:58
· Личное сообщение · #11

так народ, заканчиваем препираться, дальше строго по теме

-----
[nice coder and reverser]





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 16 января 2010 00:54
· Личное сообщение · #12

ntldr пишет:
распараллелил рекурсивный qsort

Рекурсивные алго - изначально ошибка... Я бы сначала от рекурсии избавился

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 78.3 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 16 января 2010 01:31
· Личное сообщение · #13

ntldr Смех, сортировка это вам не тупые вычисления и выигрыш от многопточности зависит только от исходных данных, а поскольку вы так и не сказали, что вы сотрируете, то в общем случае задача не решаема.



Ранг: 369.8 (мудрец), 400thx
Активность: 0.390
Статус: Участник

Создано: 16 января 2010 04:23
· Личное сообщение · #14

Isaev пишет:
Рекурсивные алго - изначально ошибка... Я бы сначала от рекурсии избавился

А можно по теме? Меня не интересуют ваши мнения относительно рекурсии или чего-либо еще, я спрашивал о конкретной реализации.

fakit пишет:
и выигрыш от многопточности зависит только от исходных данных

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

-----
PGP key <0x1B6A24550F33E44A>




Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 16 января 2010 11:31
· Личное сообщение · #15

Можно попробовать Intel Paralles studio поюзать, может оно даст подсказки как распаралеливать.

-----
Реверсивная инженерия - написание кода идентичного натуральному



 eXeL@B —› Программирование —› Реализация параллельной сортировки
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати