- •230100.68 Информатика и вычислительная техника
- •«Компьютерный анализ и интерпретация данных»
- •Системы обработки данных (сод)
- •Параллельная сортировка Бэтчера
- •2. Вычисление корня алгебраического или трансцендентного уравнения
- •3. Решение системы линейных алгебраических уравнений методом простой итерации
- •Архитектура olap приложений
- •Что такое хранилище данных?
- •Типичная структура хранилищ данных
- •Таблицы измерений
- •“Разрезание” куба
- •Иерархии и уровни
- •Архитектура olap приложений
- •Требования к спп.
- •Понятие Статистики
- •Понятие Машинного обучения
- •Понятие Искусственного интеллекта
- •Классификация стадий Data Mining
- •Сравнение свободного поиска и прогностического моделирования с точки зрения логики
Параллельная сортировка Бэтчера
Алгоритм сортировки
Бэтчера не является наиболее эффективным
алгоритмом сортировки, однако он обладает
одним важным компенсирующим качеством:
все сравнения и/или обмены, определяемые
данной итерацией алгоритма можно
выполнять одновременно. С такими
параллельными операциями сортировка
осуществляется за
.
Например, 1024 элемента можно рассортировать методом Бэтчера всего за 55 параллельных шагов. Схема сортировки Бэтчера несколько напоминает сортировку Шелла, но сравнения выполняются по-новому, а потому цепочки операций обмена записей не возникает. Поскольку в алгоритме Бэтчера, по существу, происходит слияние пар рассортированных подпоследовательностей, его можно назвать обменной сортировкой со слиянием.
Алгоритм Бэтчера
(обменная сортировка со слиянием). Записи
перекомпоновываются
в пределах того же пространства в памяти.
После завершения сортировки их ключи
будут упорядочены:
.
Предполагается, что
.
1)[начальная
установка
.]
Установить
,
где
—
наименьшее целое число, такое, что
.
(Шаги 2-5 будут выполняться с
.)
2)[начальная
установка
.]
Установить
.
3)[цикл по
.]
Для всех
,
таких, что
и
,
выполнять шаг 4.
Затем перейти к
шагу 5. (Здесь через
обозначена
операция "поразрядное логическое И"
над представлениями целых чисел
и
;
все биты результата равны 0, кроме тех
битов, для которых в соответствующих
разрядах
и
находятся
1. Так
.
К этому моменту
—
нечётное кратное
(т.е.
частное от деления
на
нечётно),
а
—
степень двойки, так что
.
Отсюда следует, что шаг 4 можно выполнять
при всех нужных значениях
в
любом порядке или даже одновременно.)
4)[Сравнение/обмен
.]
Если
,
поменять местами записи
.
5)[Цикл по
.]
Если
,
установить
и
возвратиться к шагу 3.
6)[Цикл по
]
(К этому моменту перестановка
будет
-упорядочена.)
Установить
.
Если
,
возвратиться к шагу 2.
2. Вычисление корня алгебраического или трансцендентного уравнения
Пусть дано уравнение
.
Требуется на отрезке
найти
корень при условии
.
Для построения алгоритма ветви
используется метод хорд, заключающийся
в следующем (рисунок N1). Кривая
заменяется
хордой
,
определяется

Рисунок 1. Метод хорд.
точка
,
после чего проводится хорда
определяется
и
т. д., пока
.
Для реализации
задачи на
процессоров,
т.е. для построения параллельного
алгоритма из
ветвей,
отрезок
разбивается
на
подотрезков
на границах которых вычисляется
.
Это определяет подотрезок
длиной
,
содержащий корень
.
Точки
и
—
соседние, в них значения функции имеют
разные знаки (рисунок N1).
После отрезка
рассматривается
отрезок
,
где
(1)
Отрезок
разбивается
на
частей,
повторяется описанная процедура,
получается отрезок
и
т. д., пока длина отрезка не станет меньше
заданного значения. Параллельный счет
оправдан, когда объём вычислений значения
намного
превосходит объём вычислений границ
отрезка
по
(1).
Аналогичный результат получается и при использовании метода Ньютона.
3. Решение системы линейных алгебраических уравнений методом простой итерации
Система уравнений
размерности
записывается
в виде
,
где
—
матрицы;
и
—
векторы;
—
единичная матрица.
Последовательные
приближения вычисляются по формуле
,
начиная с некоторого исходного приближения
.
Процесс завершается, если
.
Последовательность
в
методе простой итерации сходится, если
для матрицы
выполняется
одно из неравенств

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

где
—
число строк матрицы
и
компонентов векторов
и
,
обрабатываемых отдельной ветвью,
—
время обмена данными,
—
время выполнения сложения,
—
время выполнения умножения.
Лекция 5.
