Сеть сортировки Bitonic с использованием параллельных вычислений

Опубликовано: 27 Февраля, 2023

Что такое сети сортировки в параллельных вычислениях?

Сортировочные сети — это сети сравнения, которые всегда сортируют свои входные данные. Они также известны как сети сравнения. Сети сравнения состоят из проводов и компараторов. Провода отвечают за передачу значения от одного узла к другому, а компаратор отвечает за сравнение двух входов для получения двух выходов.

Базовая блок-схема компаратора показана ниже:

На приведенной выше диаграмме:

  • x и y являются входными данными
  • x' и y' являются выходами
  • х' = мин (х, у)
  • у' = макс (х, у)

В сортировочной сети выходная последовательность монотонно возрастает. Сеть сравнения похожа на процедуру, которая определяет, как происходит сравнение.

Глубина сортировочной сети – это минимальное количество компараторов на пути от входных проводов к выходному проводу.

Сортировочная сеть Bitonic

Это особый тип сортировочной сети. Он состоит из битонического сортировщика и битонической последовательности. Давайте посмотрим, что такое битонический сортировщик и битонная последовательность.

Bitonic Sorter — Bitonic Sorter состоит из нескольких этапов, каждый из которых называется полуочистителем. Полуочиститель — это сеть сравнения глубины 1. Битонический сортировщик получается путем рекурсивного объединения полуочистителей, в котором строка i сравнивается со строкой (i + n/2) для всех i в диапазоне [1, n/2] .

Bitonic Sequence — битоническая последовательность представляет собой последовательность битов, т. е. 0 и 1. Это последовательность, которая монотонно возрастает, а затем монотонно убывает или может быть циклически сдвинута, чтобы стать монотонно возрастающей, а затем монотонно убывающей.

Как работает сортировочная сеть bitonic?

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

Пример:

Учитывая последовательность {0, 0, 1, 1, 1, 0, 0, 0}, что будет на выходе, когда она будет передана через битоническую сортировочную сеть?

Решение:

В данном примере ввод делится на две половины, и входы каждой половины сравниваются по порядку и рекурсивно, пока ввод не будет полностью отсортирован. Сравнения происходят для log 2 x, где x — количество входных данных.

Свойства выхода битонической сортировочной сети:

  • И верхняя и нижняя половина чистые.
  • Каждый элемент в верхней половине по крайней мере так же мал, как и каждый элемент в нижней половине.
  • По крайней мере, одна половина чистая (либо все 0, либо все 1).