Параллельное обобщение базовой операции сортировки
Лекция 7. Параллельные численные алгоритмы для решения типовых задач вычислительной математики: сортировка и обработка графов.
Сортировка. Параллельное обобщение базовой операции сортировки. Пузырьковая сортировка. Сортировка Шелла. Быстрая сортировка. Обработка графов. Нахождение минимально охватывающего дерева. Поиск кратчайших путей. Сортировка Сортировка является одной из типовых проблем обработки данных, и обычно понимается как задача размещения элементов неупорядоченного набора значений
в порядке монотонного возрастания или убывания
(здесь и далее все пояснения для краткости будут даваться только на примере упорядочивания данных по возрастанию). Возможные способы решения этой задачи широко обсуждаются в литературе; один из наиболее полных обзоровалгоритмов сортировки содержится в работе [7]. Вычислительная трудоемкость процедуры упорядочивания является достаточно высокой. Так, для ряда известных простых методов (пузырьковая сортировка, сортировка включением и др.) количество необходимых операций определяется квадратичной зависимостью от числа упорядочиваемых данных
Для более эффективных алгоритмов (сортировка слиянием, сортировка Шелла, быстрая сортировка) трудоемкость определяется величиной
Данное выражение дает также нижнюю оценку необходимого количества операций для упорядочивания набора из Ускорение сортировки может быть обеспечено при использовании нескольких ( Оставляя подробный анализ проблемы сортировки для специального рассмотрения, в пособии основное внимание уделяется изучению параллельных способов выполнения для ряда широко известных методов внутренней сортировки, когда все упорядочиваемые данные могут быть размещены полностью в оперативной памяти ЭВМ. Параллельное обобщение базовой операции сортировки 1. При детальном рассмотрении способов упорядочивания данных, применяемых в алгоритмах сортировки, можно обратить внимание, что многие методы основаны на применении одной и той же базовой операции "сравнить и переставить" (compare-exchange), состоящей в сравнении той или иной пары значений из сортируемого набора данных и перестановки этих значений, если их порядок не соответствует условиям сортировки // операция "сравнить и переставить" if ( a[i] > a[j] ) { temp = a[i]; a[i] = a[j]; a[j] = temp; } Целенаправленное применение данной операции позволяет упорядочить данные; в способах выбора пар значений для сравнения собственно и проявляется различие алгоритмов сортировки. Так, например, в пузырьковой сортировке [7] осуществляется последовательное сравнение всех соседних элементов; в результате прохода по упорядочиваемому набору данных в последнем (верхнем) элементе оказывается максимальное значение ("всплывание пузырька"); далее для продолжения сортировки этот уже упорядоченный элемент отбрасывается и действия алгоритма повторяются // пузырьковая сортировка for ( i=1; i<n; i++ ) for ( j=0; j<n-i; j++ ) <сравнить и переставить элементы (a[j], a[j+1])> } 2. Для параллельного обобщения выделенной базовой операции сортировки рассмотрим первоначально ситуацию, когда количество процессоров совпадает с числом сортируемых значений (т.е. - выполнить взаимообмен имеющихся на процессорах - сравнить на каждом процессоре
3.Рассмотренное параллельное обобщение базовой операции сортировки может быть надлежащим образом адаптировано и для случая - выполнить взаимообмен блоков между процессорами - объединить блоки - разделить полученный двойной блок на две равные части и оставить одну из этих частей (например, с меньшими значениями данных) на процессоре
Рассмотренная процедура обычно именуется в литературе как операция "сравнить и разделить" (compare-split). Следует отметить, что сформированные в результате такой процедуры блоки на процессорах
Популярное: Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... ![]() ©2015-2024 megaobuchalka.com Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (400)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |