004.272.26
Мунерман В.И., Мунерман Д.В.
Смоленский государственный университет (СмолГУ), г. Смоленск, Россия ПАРАЛЛЕЛЬНАЯ РЕАЛИЗАЦИЯ ОПЕРАЦИЙ ОБРАБОТКИ ФАЙЛОВ АННОТАЦИЯ
В статье рассмотрены архитектуры программно-аппаратных комплексов для реализации основных операций в теоретико-множественной (файловой) модели данных. Предложены методы параллельной реализации операций сортировки, выборки, сжатия и слияния строго упорядоченных файлов. Для операции внешней сортировки файла проведена оценка числа процессоров, необходимых для ее эффективной реализации.
КЛЮЧЕВЫЕ СЛОВА
Программно-аппаратные комплексы; модели данных; массовая параллельная обработка данных.
Munerman V.I., Munerman D.V.
Smolensk State University, Smolensk, Russia THE PARALLEL IMPLEMENTATION OF THE FILES PROCESSING OPERATIONS ABSTRACT
Architectures software and hardware systems for the implementation of the basic operations in the set-theoretic (file) data model are discussed in the article. Methods of parallel implementation of the operations of sorting, selecting, compression and merging strictly ordered files are offered. For the external file-sorting operation the estimate of the number of processors, which are necessary for its effective implementation, is done.
KEYWORDS
Hardware and software systems; data model; massively parallel processing.
В работе рассматривается возможность создания программно-аппаратных комплексов для параллельнои обработки структурированных больших данных. В качестве модели данных, позволяющеи строить такие программно-аппаратные комплексы, можно использовать теоретико-множественную или фаиловую модель (алгебру фаилов) [4]. Основнои агрегат данных в теоретико-множественнои модели - фаил, которыи определяется как фактор-множество множества однотипных записеи X по отношению эквивалентности порожденному множеством K и
обозначается - Xk. Составляющие Xk классы эквивалентности обозначаются X , или X, ,X, ....
K К(1) K2)
Если некоторому экземпляру множества ключеи во множестве X не соответствует ни однои реальнои записи, считается, что ему соответствует универсальная неопределенная запись ©. Класс эквивалентности, соответствующии экземпляру множества ключеи K и состоящии из единственнои записи ©, обозначается @
Каждому фаилу в теоретико-множественнои модели в реляционнои модели данных можно поставить в соответствие отношение во второи или третьеи нормальнои форме. Операциям над фаилами соответствуют операции реляционнои алгебры. Это соответствие операции приведено в таблице 1.
Таблица1. Соответствие алгебраических операций в моделях данных
Алгебра файлов Реляционная алгебра
1 сортировка неявная операция, реализована в языке манипулирования данными SQL
2 выборка selection
3 сжатие projection
4 слияние строго упорядоченных файлов теоретико-множественные операции
5 слияние нестрого упорядоченных фаилов join
В рамках теоретико-множественной модели возможны различные эффективные алгоритмы распараллеливания унарных операции сортировки, выборки и сжатия и бинарнои операции слияния строго упорядоченных фаилов. Параллельная реализация операции слияния нестрого упорядоченных фаилов (join) неоднократно рассматривалась авторами [6]. Поэтому в настоящеи работе авторы рассматривают проблему создания программно-аппаратных комплексов для первых четырех операции.
1. Сортировка. На вход этой операции подается неупорядоченный по множеству ключей K файл, то есть относительно этого множества ключей его можно рассматривать как множество однотипных записей. Относительно другого множества ключей это может упорядоченный файл. Как правило, объем исходного файла настолько велик, что невозможно ограничиться одним из алгоритмов внутренней сортировки и приходится использовать внешнюю сортировку.
Наиболее популярныи алгоритм внешнеи сортировки, основанныи на методе слияния (балансного объединения) легко распараллеливается. На первом этапе этого алгоритма исходныи фаил делится на равные (за исключением последнеи) порции, которые сортируются в оперативнои памяти параллельно работающих процессоров SPi, ..., SPm. Для удобства можно считать M=2k. Наименьшее значение M определяется отношением объема фаила к объему оперативнои памяти процессора, которую можно выделить для внутреннеи сортировки порции. С другои стороны, время
i—)2
сортировки в основном зависит от величины ^M' (L - количество записеи в фаиле), что влечет за собои желание увеличить M настолько, насколько позволяет аппаратура. Но после первого этапа выполняется k этапов слияния упорядоченных порции, на каждом из которых число порции уменьшается вдвое, а объем объединенных порции удваивается. Тогда вычислительная сложность рассматриваемого алгоритма будем иметь порядок, которыи определяется функциеи
г(L, * > = (L ]2 + 2 ^ " £).
Из этого следует, что даже при значительном увеличении числа записеи в фаиле величина k увеличивается незначительно. Например, при L=105 k=17, а при L=108 k=27. Однако даже при таких небольших значениях k число процессоров, используемых на первом этапе равное 2k чрезвычаино велико, и значительно превосходит число процессоров (ядер) в современных суперкомпьютерах, и, тем более, в машинах баз данных, и в обычных корпоративных сетях. В некоторои степени выходом может служить использование графических процессоров, количество которых может быть большим и которые весьма эффективны при реализации алгоритмов, подобных внутреннеи сортировке. Был проведен анализ, суть которого состояла в оценке порядка вычислительнои сложности операции сортировки различных значениях k. Результаты анализа для различных значении k приведены в таблицах 2 и 3, а на рисунках 1 и 2 - их графическое представление.
Таблица 2. Оценки сложности параллельного алгоритма внешней _сортировки при k =8 и k=10
L min(r(L, k)) min Т (L, k > T(L, 8) min T (L, k > T (L, 10)
100000 17 2,52 1,09
500000 19 8,63 1,48
1000000 20 16,25 1,95
1500000 21 23,88 2,43
3000000 22 46,77 3,86
50,00 40,00 30,00 20,00 10,00 0,00
100000
500000
1000000 -k=8
1500000 — k=10
3000000
Рис. 1. Оценки сложности параллельного алгоритма внешней сортировки при к =8 и к=10
Таблица 3. Оценки сложности параллельного алгоритма внешней сортировки _для к =12, к =14 и к=16
min T ( L , k) min T ( L , k) min T ( L , k)
L min 1 (L, k) T(L,12) T(L,14) T(L,16)
100000 17 1,01 1,00 1,00
500000 19 1,03 1,00 1,00
1000000 20 1,06 1,00 1,00
1500000 21 1,09 1,01 1,00
3000000 22 1,18 1,01 1,00
1,20 1,15 1,10 1,05 1,00 0,95 0,90
100000
500000 1000000 1500000 3000000
---k=12 -----k=14
■k=16
Рис. 2. Оценки сложности параллельного алгоритма внешней сортировки для k =12, k =14 и k=16
Анализ показал, что при достаточно большом количестве процессоров (k =10, 12, 14, 16) min T (L, k)
отношение Tk) стремится к 1. Причем, при значительном увеличении L это отношение мало
изменяется. Например, при L=108 min(r(L, /с))=27, и для к =16
min T (L, k) T(L,16)
= 1,02
Неупорядоченный файл X (множество однотипных записей)
мр,„
Упорядоченный файл Хк
Рис.3. Архитектура программно-аппаратного комплекса для сортировки файла
Программно-аппаратный комплекс для реализации операции внешней сортировки имеет архитектуру, показанную на рисунке 2. На первом этапе M=2k процессоров (SP1, ..., SPm) выполняют программу внутренней сортировки файла X, разделенного на порции одинакового размера (за исключением, может быть, последней, если L не кратно M). В результате получается M упорядоченных файлов-порций Xii, X12,..., XiM i, X im. Затем выполняется k этапов, на первом из M
которых N =— процессоров (MPi, ..., MPn) производят слияние пар, полученных на этапе 2
разделения, в упорядоченные файлы-порции X 11, X 12 ^ X 21, ..., X imi, X im ^ X 2N удвоенного объема (в записях). На каждом последующем этапе используется вдвое меньше процессоров, а объемы получаемых в результате слияния упорядоченных файлов-порций удваиваются. Перед k-тым этапом остаются два упорядоченных файла-порции X и X , объем одного из них равен L, а
-1 1 -1 2 2 объем второго может быть меньше, а в сумме их объемы равны L. На этом этапе используется единственный процессор MPk1, который производит слияния двух последних упорядоченных файлов-порций упорядоченных файлов-порций в упорядоченный файл Xk.
2. Выборка. Самая простая операция обработки файлов, она же и распараллеливается проще остальных операций.
Этои операции соответствует реляционная операция SELECT ... WHERE ... Современные языки манипулирования данными в реляционных СУБД содержат средства, обеспечивающие автоматическое распараллеливание этои операции [1, 2]. Здесь предлагается использовать логически-последовательньш метод доступа [3]. Этот метод доступа присущ массовои обработке данных, при которои коэффициенты активности (отношение числа обрабатываемых записеи к числу записеи в фаиле) всех обрабатываемых фаилов близки к единице. Логически последовательным он называется потому, что позволяет учитывать тот факт, что способы организации данных и доступа к ним в различных СУБД могут существенно различаться. Пусть программно-аппаратныи комплекс состоит из N процессоров (Select-процессоров). Тогда каждому процессору можно поставить в соответствие фрагмент исходного фаила. Объемы этих фрагментов,
L_
за исключением, может быть, последнего, равны N . Как и в случае первого этапа операции сортировки, объем последнего фрагмента может быть меньше этого значения. В большинстве СУБД разделение на фрагменты осуществляется на уровне индексных фаилов. При логически-последовательном доступе индексация записеи не требуется. Архитектура программно-аппаратного комплекса для операции приведена на рисунке 4. Если фаил не разбит на фрагменты физически, каждому процессору ставится в соответствие номер первои записи фрагмента и объем фрагмента в записях. Эту информацию вместе с запросом на выборку Select-процессорам передает хост-процессор. Каждыи процессор выполняет выборку из своего фрагмента фаила. В случае, когда фаил физически разбит на фрагменты, которые находятся на внешних запоминающих устроиствах Select-процессоров, хост-процессор передает Select-процессорам только запрос.
СГ
Файл-^результат^
Рис. 4. Архитектура программно-аппаратного комплекса для операции выбоки
3. Сжатие. Пусть даны файлы Хк, нестрого упорядоченный по множеству ключей К, и Yк, строго упорядоченный по множеству ключей К. Классы эквивалентности этих файлов связаны
соотношением Yк^ = f(Xк*), где / - функция, реализующая групповую операцию. Тогда считается,
что файл Yк получен из файла Хк в результате применения операции сжатия.
Для реализации этой операции необходимо использовать принцип симметричного горизонтального распределения данных, суть которого состоит в следующем. Исходным фаил Xk разбивается на фрагменты, каждыи из которых содержит совокупность классов эквивалентности X, Число фрагментов равно числу процессоров в программно-аппаратном комплексе. Эти
процессоры называются фрагмент-процессорами. Распределение осуществляется на основе индексно-последовательного метода доступа (ISAM). Для этого фаилу Xk ставится в соответствие
индексным фаил indXK = (<KL),I-x,Щх >,.,<K«),I«x,mnX Здесь j - индекс первои записи
класса эквивалентности X , , mjx - количество записеи в этом классе эквивалентности. Если класс
К( 1)
эквивалентности X , состоит из единственнои универсальнои неопределеннои записи ©, то
К (i)
значение j не определено, а m;x=0. Естественно, реализация фаила indXK не содержат записи с неопределенными значениями. Для эффективнои параллельнои реализации операции сжатия необходимо, чтобы объемы фрагментов незначительно отличались. Для того, чтобы это условие выполнялось, в процессе распределения фаила используются оптимизационные алгоритмы, такие как множественныи алгоритм загрузки рюкзака или предложенныи авторами эвристическии алгоритм бустрофедона [5]. Эти алгоритмы используют информацию из индексного фаила indXK и распределяют классы эквивалентности фаила Xk так, что каждыи класс эквивалентности целиком располагается в одном фрагменте, разница объемов фрагментов минимальна, и фрагменты
Рис. 5. Программно-аппаратный комплекс для сжатия нестрого упорядоченных файлов
Хост-процессор, если в этом есть необходимость, преобразует исходный файл Хк в N фрагментов. Для этого программным способом формируется индексный файл indXK. На его основе
выполняется один из алгоритмов распределения данных, для чего используется один из ранее указанных алгоритмов. Фрагмент-процессоры формируют из каждого класса эквивалентности своего фрагмента фаила Хк запись фаила результата Yк.
4. Слияние строго упорядоченных файлов. Пусть даны два файла Хк и Yк строго упорядоченные по одному и тому же множеству ключей К. В результате слияния этих строго упорядоченных файлов образуется файл Zк, классы эквивалентности задаются соотношением 2 > = f (х Y ,). Функция f (х Y ,), определенная на классах эквивалентности исходных
К * ^ ^ К * 5 К * ^ ^ ^ К * 5 К '
файлов, задает характер операции.
Параллельная реализация операции слияния строго упорядоченных фаилов так же как и операция сжатия требует использования метаданных (индексных фаилов). В этом случае один из исходных строго упорядоченных фаилов, как правило, имеющии большии объем, определяется как ведущии. Создается индексныи фаил, определяющии разбиение ведущего фаила на равные (за исключением, может быть, последнего) фрагменты. Количество фрагментов равно количеству процессоров. Запись индексного фаила для каждого фрагмента содержит адрес первои записи, значения ключеи первои и последнеи записеи и объем этого фрагмента. На основе индексного
файла ведущего файла создается индексный файл для ведомого файла. Естественно, фрагменты ведомого файла будут йметь разлйчные объемы, но каждый йз нйх будет содержать запйсй, значенйя ключей которых находятся в том же дйапазоне, что й значенйя ключей соответствующего фрагмента ведущего файла. Следует отметйть, что некоторые запйсй ведомого йндексного файла будут содержать нулевое значенйе колйчества запйсей. Это означает, что все запйсй такого фрагмента ведомого файла есть унйверсальные неопределенные запйсй 0, то есть фактйческй отсутствуют в ведомом файле. Однако в практйке массовой обработкй данных такйе случай встречаются очень редко. Для удобства этй йндексные файлы могут быть объедйнены в одйн йндексный файл, структура, которого прйведена на рйсунке 6.
Программно-аппаратный комплекс для слйянйя строго упорядоченных файлов ймеет архйтектуру, показанную на рйсунке 6. Процессор-коммутатор раздает N процессорам, соответствующее запйсй объедйненного йндексного файла. Процессоры выполняют программу слйянйя соответствующих йм фрагментов йсходных файлов в соответствйй с однйм йз алгорйтмов, слияния строго упорядоченных файлов, формируя записи выходного файла.
Рис. 6. Программно-аппаратный комплекс для слияния строго упорядоченных файлов
Таким образом, можно утверждать, что для всех операций над файлами, определенными в теоретико-множественной (файловой) модели данных существуют способы распределения данных и основанные на этом распределении параллельные алгоритмы, реализующие эти операции.
Литература
1. Database Data Warehousing Guide. - https://docs.oracle.com/cd/B19306_01/server.102/b14223/usingpe.htm.
2. Exploring SQL Server 2014 SELECT INTO Parallelism. - http://sqlperformance.com/2013/08/t-sql-queries/parallel-select-into.
3. Левин Н.А., Мунерман В.И. Метод логически последовательного доступа к данным. - Системы высокой доступности. 2011. Т. 7. № 4. - с. 65-67.
4. Мунерман В.И. Реализация обработки больших объемов данных на симметричных мультипроцессорных системах. - М.; Системы высокои доступности, 2, 2013, т. 9. - С. 36-39.
5. Мунерман В.И. Опыт массовои обработки данных в облачных системах (на примере WINDOWS AZURE). - Системы высокои доступности. 2014. Т. 10. № 2. - С. 8-13.
6. Мунерман В.И., Мунерман Д.В. Алгебраическии подход к построению программно-аппаратных комплексов для повышения эффективности массовои обработки данных. - Современные информационные технологии и ИТ-образование. 2015. Т. 2. № 11. - с. 391-396.
References
1. Database Data Warehousing Guide. - https://docs.oracle.com/cd/B19306_01/server.102/b14223/usingpe.htm.
2. Exploring SQL Server 2014 SELECT INTO Parallelism. - http://sqlperformance.com/2013/08/t-sql-queries/parallel-select-into.
3. Levin N.A., Munerman V.I. Metod logicheski posledovatel'nogo dostupa k dannym. - Sistemy vysokoy dostupnosti. 2011. T. 7. № 4. - s. 65-67.
4. Munerman V.I. Realizatsiya obrabotki bol'shikh ob"emov dannykh na simmetrichnykh mul'tiprotsessornykh sistemakh. -M.; Sistemy vysokoy dostupnosti, 2, 2013, t. 9. - S. 36-39.
5. Munerman V.I. Opyt massovoy obrabotki dannykh v oblachnykh sistemakh (na primere WINDOWS AZURE). - Sistemy
vysokoy dostupnosti. 2014. Т. 10. № 2. - S. 8-13.
6. Мипегтап VI., Мипегтап D.V. Algebraicheskiy podkhod к postroeniyu programmno-apparatnykh kompleksov dlya povysheniya effektivnosti massovoy obrabotki dannykh. - Sovremennye informatsionnye tekhnologii i IT-obrazovanie. 2015. Т. 2. № 11. - s. 391-396.
Поступйла: 12.09.2016
Об авторах:
Мунерман Виктор Иосифович, доцент кафедры йнформатйкй Смоленского государственного унйверсйтета, кандйдат технйческйх наук, [email protected];
Мунерман Даниил Викторович, лаборант-стажер кафедры йнформатйкй Смоленского государственного унйверсйтета, [email protected].