Скачать презентацию Параллельные алгоритмы Сортировка данных с точки зрения МВС Скачать презентацию Параллельные алгоритмы Сортировка данных с точки зрения МВС

387086f6a540d5634a257e0170bdc8ad.ppt

  • Количество слайдов: 58

Параллельные алгоритмы Сортировка данных с точки зрения МВС М. В. Якобовский Москва 2010 Параллельные алгоритмы Сортировка данных с точки зрения МВС М. В. Якобовский Москва 2010

ОСНОВНАЯ Расположить в порядке неубывания N элементов массива чисел, используя p процессоров ЦЕЛЬ Москва, ОСНОВНАЯ Расположить в порядке неубывания N элементов массива чисел, используя p процессоров ЦЕЛЬ Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 2 из 58

Две задачи сортировки массива чисел A. Объём оперативной памяти одного процессорного узла достаточен для Две задачи сортировки массива чисел A. Объём оперативной памяти одного процессорного узла достаточен для одновременного размещения в ней всех элементов массива B. Объём оперативной памяти одного процессорного узла мал для одновременного размещения в ней всех элементов массива Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 3 из 58

Задача А q Расположить N элементов массива a таким образом, чтобы для любого выполнялось Задача А q Расположить N элементов массива a таким образом, чтобы для любого выполнялось неравенство Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 4 из 58

Задача B Пусть массив можно разместить на p процессорах. q Пусть на процессоре с Задача B Пусть массив можно разместить на p процессорах. q Пусть на процессоре с номером rank размещено элементов массива. q q Расположить N элементов массивов чтобы: – для любых выполнялось неравенство таким образом, и – для любого – выполнялось неравенство Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 5 из 58

Задача B q Части массива хранятся на нескольких процессорах – Каждая часть массива должна Задача B q Части массива хранятся на нескольких процессорах – Каждая часть массива должна быть упорядочена – На процессорах с большими номерами должны быть размещены элементы массива с большими значениями • Правильно • Ошибка Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 6 из 58

Задача B q Будем рассматривать только процесс упорядочивания элементов: – Перед началом сортировки на Задача B q Будем рассматривать только процесс упорядочивания элементов: – Перед началом сортировки на каждом из процессоров уже есть часть элементов массива – После окончания сортировки на каждом из процессоров должно остаться столько элементов, сколько их было в начале (но, это уже могут быть другие элементы, расположенные ранее на других процессорах) Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 7 из 58

Этапы сортировки – Упорядочивание фрагментов массива на каждом из процессоров ? – Перераспределение элементов Этапы сортировки – Упорядочивание фрагментов массива на каждом из процессоров ? – Перераспределение элементов массива между процессорами – Упорядочивание фрагментов массива на каждом из процессоров ? Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 8 из 58

Конструирование наилучшего последовательного алгоритма ? Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных Конструирование наилучшего последовательного алгоритма ? Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 9 из 58

Сравнение алгоритмов сортировки Алгоритм сортировки Среднее число операций Максимальное число операций Быстрая (qsort) 11. Сравнение алгоритмов сортировки Алгоритм сортировки Среднее число операций Максимальное число операций Быстрая (qsort) 11. 7 n log 2 n O(n 2) Пирамидальная (hsort) 16 n log 2 n 18 n log 2 n+ 38 n Слияние списков (lsort) 10 Москва, 2009 г. n log 2 n Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. O(n log 2 n) 10 из 58

Пусть f(N)<C∙g(N), и ? g(N) f(N) g(N) q Где Москва, 2009 г. тут 2 Пусть f(N)

Константа времени сортировки T=10 -9 K N log 2(N) Москва, 2009 г. Параллельные методы Константа времени сортировки T=10 -9 K N log 2(N) Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 12 из 58

Пирамидальная сортировка: константы времени и числа операций Время работы алгоритма определяется: • Числом операций Пирамидальная сортировка: константы времени и числа операций Время работы алгоритма определяется: • Числом операций сравнения и перестановки элементов массива T=10 -9 K n log 2(n) M=10 -9 R n log 2(n) Москва, 2009 г. • Временем обращения к оперативной памяти (чтения и записи элементов массива) Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 13 из 58

Константа времени сортировки наилучшего алгоритма Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных Константа времени сортировки наилучшего алгоритма Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 14 из 58

Изящный алгоритм сортировки массива слиянием сортировать ( массив mas, число элементов n ) { Изящный алгоритм сортировки массива слиянием сортировать ( массив mas, число элементов n ) { если (n > 1) { // сортировка первой половины массива сортировать ( mas, n/2); // сортировка второй половины массива сортировать ( mas+n/2, n-n/2); // слияние отсортированных половинок массива слияние ( mas, n/2, mas+n/2, n-n/2); } } Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 15 из 58

Алгоритм сортировки массива слиянием Dsort(intsort *array, int n) { a=array; // сортируемый массив b=array_second; Алгоритм сортировки массива слиянием Dsort(intsort *array, int n) { a=array; // сортируемый массив b=array_second; // вспомогательный массив for(i=1; i

Слияние упорядоченных фрагментов for(ia=0, ib=0, k=0; k<n 1+n 2; k++) { if(ia>=n 1) b[j+k]=a[r+ib++]; Слияние упорядоченных фрагментов for(ia=0, ib=0, k=0; k=n 1) b[j+k]=a[r+ib++]; else if(ib>=n 2) b[j+k]=a[j+ia++]; else if(a[j+ia]

Сортировка слиянием методом сдваивания q Требуется 2 + 4 + 8 + 16 тактов Сортировка слиянием методом сдваивания q Требуется 2 + 4 + 8 + 16 тактов (8 процессоров) Для просмотра анимации возможно требуется установить свободно распространяемый Swiff Point Player: http: //www. globfx. com/products/swfpoint/ Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 18 из 58

Ускорение при методе сдваивания q k 1 – сортировка, k 2 – передача данных Ускорение при методе сдваивания q k 1 – сортировка, k 2 – передача данных Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 19 из 58

Слияние двух массивов двумя процессорами q Требуется Москва, 2009 г. 8 тактов Параллельные методы Слияние двух массивов двумя процессорами q Требуется Москва, 2009 г. 8 тактов Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 20 из 58

Пирамиды q Пирамида - это бинарное дерево высоты h , в котором: – все Пирамиды q Пирамида - это бинарное дерево высоты h , в котором: – все листья находятся на расстоянии h или h-1 от корня – левый потомок любого узла не ниже правого потомка – все потомки узла меньше его самого Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 21 из 58

Не пирамида Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения Не пирамида Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 22 из 58

Пирамида Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС Пирамида Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 23 из 58

Хранение пирамиды q. В линейном массиве потомки вершины i хранятся в элементах 2 i, Хранение пирамиды q. В линейном массиве потомки вершины i хранятся в элементах 2 i, 2 i+1 Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 24 из 58

Пирамида и её хранение q 9 Москва, 2009 г. 58 4467 1203352 Параллельные методы Пирамида и её хранение q 9 Москва, 2009 г. 58 4467 1203352 Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 25 из 58

Пирамидальная сортировка q. В Москва, 2009 г. пирамиде для любого Параллельные методы и алгоритмы: Пирамидальная сортировка q. В Москва, 2009 г. пирамиде для любого Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 26 из 58

Пирамидальная сортировка q q q 9 2 8 8 58 58 52 57 4467 Пирамидальная сортировка q q q 9 2 8 8 58 58 52 57 4467 4462 1203352[ 120335[9 5 57 7 55 7 56 4462 4452 12033[89 3 6 6 6 56 53 53 55 4452 4432 1203[789 3 55 5 35 5 45 4432 3432 120[6789 q q q 0 45 5 40 5 43 Москва, 2009 г. 3432 3402 12[56789 2 43 4 23 4 43 3402 3202 1[556789 q 1 23 3402 [4556789 q q q 1 23 3 21 3 22 3402 3401 q 1 22 340 q q Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. [4556789 [34556789 27 из 58

Пирамидальная сортировка q 9 58 q 2 58 q 8 52 q 8 57 Пирамидальная сортировка q 9 58 q 2 58 q 8 52 q 8 57 4467 4462 1203352[ 120335[9 q 5 4462 4452 12033[89 57 q 7 55 q 7 56 Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 28 из 58

Оптимальный алгоритм q Оптимальна комбинация: q H алгоритм (пирамидальная сортировка) при n от 10 Оптимальный алгоритм q Оптимальна комбинация: q H алгоритм (пирамидальная сортировка) при n от 10 до 50 000 q DH алгоритм (пирамидальная сортировка блоков размером до 50 000 и их последующее слияние) при n больше 50 000 пирамидальная слияние Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 29 из 58

Константа времени сортировки наилучшего алгоритма Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных Константа времени сортировки наилучшего алгоритма Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 30 из 58

Две задачи сортировки массива чисел A. Объём оперативной памяти одного процессорного узла достаточен для Две задачи сортировки массива чисел A. Объём оперативной памяти одного процессорного узла достаточен для одновременного размещения в ней всех элементов массива B. Объём оперативной памяти одного процессорного узла мал для одновременного размещения в ней всех элементов массива Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 31 из 58

Задача B q Части массива хранятся на нескольких процессорах – Каждая часть массива должна Задача B q Части массива хранятся на нескольких процессорах – Каждая часть массива должна быть упорядочена – На процессорах с большими номерами должны быть размещены элементы массива с большими значениями • Правильно • Ошибка Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 32 из 58

Задача B q Будем рассматривать только процесс упорядочивания элементов: – Перед началом сортировки на Задача B q Будем рассматривать только процесс упорядочивания элементов: – Перед началом сортировки на каждом из процессоров уже есть часть элементов массива – После окончания сортировки на каждом из процессоров должно остаться столько элементов, сколько их было в начале (но, это уже могут быть другие элементы, расположенные ранее на других процессорах) Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 33 из 58

Этапы сортировки – Упорядочивание фрагментов массива на каждом из процессоров – Перераспределение элементов массива Этапы сортировки – Упорядочивание фрагментов массива на каждом из процессоров – Перераспределение элементов массива между процессорами с сохранением упорядоченности массива на каждом отдельном процессоре Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 34 из 58

Стратегия перераспределения данных между процессорами ? Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка Стратегия перераспределения данных между процессорами ? Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 35 из 58

Сеть сортировки (пузырёк) n=6 s=2 n-3=9 Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка Сеть сортировки (пузырёк) n=6 s=2 n-3=9 Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 36 из 58

Сеть сортировки четно-нечетные перестановки n=6 s=n=6 Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка Сеть сортировки четно-нечетные перестановки n=6 s=n=6 Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 37 из 58

Минимальная сеть сортировки n=6 s=5 Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных Минимальная сеть сортировки n=6 s=5 Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 38 из 58

Минимальные сети сортировки n=6 s=5 n=12 s=8 [Дональд Э. Кнут] n=9 s=8 n=10 s=7 Минимальные сети сортировки n=6 s=5 n=12 s=8 [Дональд Э. Кнут] n=9 s=8 n=10 s=7 n=16 s=9 39

Четно-нечетное слияние Бэтчера Объединение двух упорядоченных массивов размера m и n: <x[1]…x[m]> и <y[1]…y[n]>. Четно-нечетное слияние Бэтчера Объединение двух упорядоченных массивов размера m и n: и . a) Если m=0 или n=0, то сеть пуста b) m=n=1, то нужен один компаратор. с) Если mn>1, то сольём нечетные элементы последовательностей и , и получим Сольём четные элементы последовательностей и , и получим Применим операции сравнения перестановки к элементам (w 1, v 2), (w 2, v 3), (w 3, v 4), … И получим отсортированный массив Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 40 из 58

Четно-нечетное слияние Бэтчера 2 4 6 8 9 13 1 3 5 7 10 Четно-нечетное слияние Бэтчера 2 4 6 8 9 13 1 3 5 7 10 11 12 Москва, 2009 г. 2 1 1 1 4 6 2 7 8 8 9 9 11 11 10 10 11 12 7 6 6 7 12 4 5 3 10 4 5 13 5 3 2 8 9 3 13 13 12 Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 1 2 3 4 5 6 7 8 9 10 11 12 13 41 из 58

Правильность сети q Доказать правильность можно на основе принципа нулей и единиц: – Если Правильность сети q Доказать правильность можно на основе принципа нулей и единиц: – Если сеть с n входами сортирует в порядке неубывания все 2 n последовательности из 0 и 1, то она будет сортировать в том же порядке любую последовательность n чисел. Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 42 из 58

Сеть сортировки n=6 s=6 Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с Сеть сортировки n=6 s=6 Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 43 из 58

Сортировка 8 ми элементов [Бэтчер] Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных Сортировка 8 ми элементов [Бэтчер] Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 44 из 58

Обменная сортировка со слиянием [Бэтчер] Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных Обменная сортировка со слиянием [Бэтчер] Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 45 из 58

Сортировка блоков – ОДИНАКОВОГО РАЗМЕРА Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных Сортировка блоков – ОДИНАКОВОГО РАЗМЕРА Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 46 из 58

Сравнение алгоритмов сортировки Алгоритм сортировки Среднее число операций Пирамидальная O(n log 2 n) Слияние Сравнение алгоритмов сортировки Алгоритм сортировки Среднее число операций Пирамидальная O(n log 2 n) Слияние O(n log 2 n) Параллельная сортировка методом сдваивания. Объём данных ограничен оперативной памятью вычислительного узла Параллельная четно-нечетная сортировка Объём данных ограничен общей оперативной памятью Параллельная «обменная сортировка со слиянием» Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 47 из 58

Слияние упорядоченных фрагментов // объединить два упорядоченных массива a, b for(ia=0, ib=0, k=0; k<n Слияние упорядоченных фрагментов // объединить два упорядоченных массива a, b for(ia=0, ib=0, k=0; k=n 1) c[k]=b[ib++]; else if(ib>=n 2) c[k]=a[ia++]; else if(a[ia]

Слияние упорядоченных фрагментов for(ia=0, ib=0, k=0; k<n; k++) { if(ia>=n 1) c[k]=b[ib++]; else if(ib>=n Слияние упорядоченных фрагментов for(ia=0, ib=0, k=0; k=n 1) c[k]=b[ib++]; else if(ib>=n 2) c[k]=a[ia++]; else if(a[ia]

Слияние упорядоченных фрагментов Join(int *a, int *b, int *c, int n, rank 1, rank Слияние упорядоченных фрагментов Join(int *a, int *b, int *c, int n, rank 1, rank 2) { if(rank==rank 1) for(ia=0, ib=0, k=0; k=0; ) { if(a[ia]>b[ib]) c[k--]=a[ia--]; else c[k--]=b[ib--]; } } Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. rank 1 rank 2 50 из 58

Реализация компаратора слияния // взаимодействие процессоров rank и rank. C int *a, *b, *c, Реализация компаратора слияния // взаимодействие процессоров rank и rank. C int *a, *b, *c, *tmp; ASend(a, n, rank. C); ARecv(b, n, rank. C); ASync(); Join(a, b, c, n, min(rank, rank. C), max(rank, rank. C)); tmp=a; a=c; c=tmp; Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 51 из 58

Сокращение объема передаваемых данных Каждое выполнение компаратора слияния требует передачи n элементов, даже если Сокращение объема передаваемых данных Каждое выполнение компаратора слияния требует передачи n элементов, даже если элементы уже расположены правильно q На процессоре с меньшим номером подготовим массив, содержащий r+1 элемент массива a с номерами q q и передадим его на процессор с большим номером bn-i-1 ai i* bn-i-1 n ai i i Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 52 из 58

n=108 P 1 2 3 4 5 6 7 8 16 27 32 48 n=108 P 1 2 3 4 5 6 7 8 16 27 32 48 64 128 192 256 384 512 640 Москва, 2009 г. T, сек 83. 51 46. 40 35. 93 29. 68 24. 45 22. 16 21. 82 19. 95 12. 36 9. 32 7. 85 6. 45 4. 92 3. 19 2. 52 1. 99 1. 63 1. 29 1. 21 E 100. 00% 90. 00% 77. 48% 70. 35% 68. 33% 62. 80% 54. 67% 52. 32% 42. 22% 33. 20% 33. 24% 26. 97% 26. 53% 20. 47% 17. 29% 16. 41% 13. 33% 12. 64% 10. 78% S 1. 00 1. 80 2. 32 2. 81 3. 42 3. 77 3. 83 4. 19 6. 75 8. 97 10. 64 12. 95 16. 98 26. 20 33. 19 42. 02 51. 20 64. 74 69. 02 Emax 100% 95% 96% 91% 92% 89% 90% 82% 74% 73% 66% 64% 56% 51% 49% 42% 41% Smax 1. 0 2. 8 3. 9 4. 5 5. 5 6. 2 7. 2 13. 1 20. 0 23. 3 31. 9 40. 9 71. 5 98. 2 124. 6 187. 0 217. 4 264. 7 sp 0 1 3 3 5 5 6 6 10 14 15 19 21 28 33 36 41 45 47 Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 53 из 58

Генерация псевдослучайных чисел Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки Генерация псевдослучайных чисел Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 54 из 58

Генерация псевдослучайных чисел A ABCD D=C C=B B=A A=(A+D)mod 2 B C (A+D)% 2 Генерация псевдослучайных чисел A ABCD D=C C=B B=A A=(A+D)mod 2 B C (A+D)% 2 D 15 1 1 0 2 14 0 1 1 3 13 1 0 1 1 0 4 10 0 1 1 5 5 1 0 1 6 11 1 1 0 7 6 0 1 1 0 0 8 12 0 0 1 1 1 9 9 1 0 0 10 2 0 1 0 0 0 11 4 0 0 12 8 0 0 0 1 1 13 1 1 0 0 0 1 14 3 1 1 0 0 1 15 Москва, 2009 г. 1 7 1 1 1 0 1 16 15 1 1 0 55

Заключение q q q Рассмотрен ряд методов сортировки массивов Показана разница между зависимостью от Заключение q q q Рассмотрен ряд методов сортировки массивов Показана разница между зависимостью от объема данных времени сортировки и числа выполняемых операций Построен «наилучший» последовательный алгоритм сортировки Рассмотрен ряд, основанных на сетях, методов параллельной сортировки массивов Рассмотрен вопрос сокращения числа шагов сортировки и объема передаваемых данных Рассмотрен вопрос оптимизации выполнения слияния на компараторе слияния Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 56 из 58

Список литературы 1. 2. 3. Москва, 2009 г. Дональд Э. Кнут. Искусство программирования, т. Список литературы 1. 2. 3. Москва, 2009 г. Дональд Э. Кнут. Искусство программирования, т. 3. Сортировка и поиск 2 -е изд. : Пер. с английского – М. : Издательский дом «Вильямс» , 2001. Седжвик Роберт. Фундаментальные алгоритмы на С++. Анализ/Структуры данных/Сортировка/Поиск: Пер. с англ. /Роберт Седжвик. - СПб. : ООО "Диа. Софт. ЮП", 2002. -688 с. Якобовский М. В. Параллельные алгоритмы сортировки больших объемов данных. Москва, 2008, http: //lira. imamod. ru/Fond. Programm/Sort/Parallel. Sort. pdf Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 57 из 58

Контакты Якобовский М. В. д. ф. -м. н. , зав. сектором «Программного обеспечения многопроцессорных Контакты Якобовский М. В. д. ф. -м. н. , зав. сектором «Программного обеспечения многопроцессорных систем и вычислительных сетей» Института математического моделирования Российской академии наук mail: lira@imamod. ru web: http: //lira. imamod. ru Москва, 2009 г. Параллельные методы и алгоритмы: Сортировка данных с точки зрения МВС © Якобовский М. В. 58 из 58