![]() |
eXeL@B —› Программирование —› Реализация параллельной сортировки |
Посл.ответ | Сообщение |
|
Создано: 14 января 2010 16:00 · Личное сообщение · #1 Кто-нибудь видел хорошую реализацию распараллеленного QuickSort на неприплюснутом си? Интересуют реализации на базе OpenMP или Win32 threads хорошо масштабирующиеся как минимум на 16 процессоров. Неохото изобретать велоспед, но длительное гугление ничего подходящего не дало. ----- PGP key ![]() |
|
Создано: 14 января 2010 17:32 · Личное сообщение · #2 |
|
Создано: 14 января 2010 17:53 · Личное сообщение · #3 mak Я кажется просил не приплюснутый си. Чтобы не терять время, сразу скажу, что гугл и sourceforge перехожены вдоль и поперек. Найдена целая куча приплюснутых реализаций, си реализации для pthread и MPI, а также куча глючных и тормозных примеров на форумах. Всё это можно допилить до нормального вида, но не хочется терять время, потому я и создал этот топик. В идеале мне нужна библиотека реализующая функцию идеентичную CRTшному qsort, быстрая, компактная и собирающаяся в VS2008 без сторонних библиотек и лишних телодвижений. Пожалуйста, не тратьте зря моё и своё время, не кидайте заведомо бесполезные ссылки. ----- PGP key ![]() |
|
Создано: 15 января 2010 00:14 · Личное сообщение · #4 > Я кажется просил не приплюснутый си. А что мешает переписать под Си? Разница ведь небольшая. Компилируешь в Си-компиляторе и отзываешься на каждую найденную "ошибку". Конечно, если исходник с классами, тот тут уже ничего не получится. Думаю, что именно поэтому ты не можешь найти именно Си-исходник, потому что Си++ легко превратить в Си. ![]() |
|
Создано: 15 января 2010 00:20 · Личное сообщение · #5 |
|
Создано: 15 января 2010 00:38 · Личное сообщение · #6 |
|
Создано: 15 января 2010 01:19 · Личное сообщение · #7 Isaev пишет: вот проблема! из с++ в C перевести Та ну какое "немного посидеть"? Если используется какой-то Win32 Threads метод, а в С++ долбанные авторы написали долбанные коды с такими же долбанными классами, из-за которых теряется суть алгоритма, то проще уже с нуля писать, ем это перегонять. ----- Stuck to the plan, always think that we would stand up, never ran. ![]() |
|
Создано: 15 января 2010 01:30 · Личное сообщение · #8 /offtop: 1) Неохото - пишется с окончанием "а". 2) идеентичную - с одной "е". Рекомендую сначала решить проблемы с пониманием языка, изучаемого многими за школьной партой и как следует! Только потом садиться за изучение результата труда уважаемых Кернигана и Ричи ! По делу: У тебя кроссплатформенная версия продукта будет ? Если нет, то почему нельзя найти худо-бедно работающую реализацию на ненавистном С++ и не сконверить в библиотеку с объектным кодом ? Которую можно прицепить соправодив ее инклудом. ----- My love is very cool girl. ![]() |
|
Создано: 15 января 2010 01:32 · Поправил: mak · Личное сообщение · #9 ![]() ![]() ![]() ![]() ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube ![]() |
|
Создано: 15 января 2010 04:09 · Личное сообщение · #10 AndreyMust19 пишет: А что мешает переписать под Си? Лень мешает, знаете ли. Я вроде ясно сказал, хочу библиотеку чтобы работало из коробки, и не хочу тратить своё время. К тому же используемая директива #pragma omp task не поддерживается MSVC, а её замена на #pragma omp sections тормозит хуже обычной однопоточной сортировки. Короче говоря - нахуй. theCollision пишет: theCollision Брысь нах из топика, флудер грёбаный. Такие все блять умные, возьми да сконверти, представляю себе, в какое дерьмовое месиво превратится код если постоянно так делать. Я кажется просил найти код под определенные требования, а не обсуждать разумность этих требований. З.Ы. была бы доступна #pragma omp task, я бы в два счета распараллелил рекурсивный qsort. А так получается большая жопа с синхронизацией, из-за чего параллельный qsort получается в 10 раз медленнее последовательного. ----- PGP key ![]() |
|
Создано: 15 января 2010 19:58 · Личное сообщение · #11 |
|
Создано: 16 января 2010 00:54 · Личное сообщение · #12 |
|
Создано: 16 января 2010 01:31 · Личное сообщение · #13 |
|
Создано: 16 января 2010 04:23 · Личное сообщение · #14 Isaev пишет: Рекурсивные алго - изначально ошибка... Я бы сначала от рекурсии избавился А можно по теме? Меня не интересуют ваши мнения относительно рекурсии или чего-либо еще, я спрашивал о конкретной реализации. fakit пишет: и выигрыш от многопточности зависит только от исходных данных Многопоточная сортировка как-раз мало зависит от исходных данных. Так что требуется именно универсальное решение. Для простоты можете представить, что сортируемые данные влезают в кэш, а значит алгоритм не упирается в скорость памяти. ----- PGP key ![]() |
|
Создано: 16 января 2010 11:31 · Личное сообщение · #15 |
![]() |
eXeL@B —› Программирование —› Реализация параллельной сортировки |