Научная статья на тему 'Модели и методы параллельной обработки структурированных больших данных'

Модели и методы параллельной обработки структурированных больших данных Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
905
113
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
BIG DATA / МОДЕЛИ ДАННЫХ / ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Захаров Виктор Николаевич, Мунерман Виктор Иосифович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Захаров Виктор Николаевич, Мунерман Виктор Иосифович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Модели и методы параллельной обработки структурированных больших данных»

Захаров В.Н.1, Мунерман В.И.2

Институт проблем информатики РАН (ИПИ РАН), д.т.н., ученый секретарь института,

VZakharov @ ipiran . ru,

2Смоленский государственный университет (СмолГУ), к.т.н., доцент, vimoon @gmail . com

Модели и методы параллельной обработки структурированных больших данных

КЛЮЧЕВЫЕ СЛОВА

Big Data, модели данных, параллельное программирование АННОТАЦИЯ

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

Работа выполнена при частичной поддержке гранта РФФИ № 13-07-00579. Часть экспериментальных результатов получена в рамках гранта, предоставленного Смоленскому государственному университету корпорацией Microsoft.

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

• выбор модели данных и построение схемы базы данных;

• разработка запросов и представление их в виде алгебраических выражений;

• выбор архитектуры параллельного вычислительного комплекса и соответствующей этой архитектуре модели вычислений;

• выбор промежуточной модели данных, связывающей исходную модель данных и модель вычислений;

• трансляция выражений запросов с языка модели данных на язык промежуточной модели с одновременным распараллеливанием и оптимизацией плана запроса;

• размещение данных во внешней памяти в соответствии с требованиями параллельной реализации запроса;

• корректировка процедур выполнения составляющих запрос операций на основе метаданных, соответствующих запросу;

• настройка аппаратных средств и выполнение запроса.

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

Массовая обработка данных: основные понятия. Традиционно массовую обработку данных связывают с параллельными вычислениями и чаще всего определяют следующим образом: массовая параллельная обработка - способ параллельной обработки больших объемов данных большим числом процессоров. В настоящее время массовую обработку данных связывают с направлением, получившим название Big Data. Big Data (большие данные) - общий термин, который обозначает структурированные, неструктурированные и полуструктурированные данные сверхбольших и постоянно возрастающих объемов, вновь создающиеся в процессе решения задач. Загрузка таких данных в обычную (например, реляционную) базу данных и последующая обработка требуют больших затрат ресурсов вычислительных комплексов [1]. Далее рассматривается один из классов массовой обработки - обработка структурированных данных.

Исторически, обработка структурированных данных - один из самых ранних классов обработки. Первые математические (алгебраические) модели для него появились еще в начале 60-х годов ХХ века и, в конечном счете, привели к современным реляционным и объектным моделям данных. Технологические решения также развивались в основном применительно к обработке структурированных данных. К числу таких решений можно отнести формализацию методов доступа к данным. Разделение их на последовательный, индексный и индексно-последовательный позволило существенно повысить производительность вычислительных комплексов, так как метод доступа определялся характером решаемой задачи. Это позволяло выбирать наиболее эффективный алгоритм обработки данных для каждой операции из последовательности операций, приводящих к решению прикладной задачи. Так как далее речь будет идти только о массовой обработке структурированных данных, то под термином "массовая обработка данных" (МОД) будет пониматься только обработка структурированных данных.

Традиционно МОД широко используется для решения многих задач в различных предметных областях в тех случаях, когда в вычисления включается значительная часть содержащихся в базе данных. К числу таких задач относятся: оперативная статистическая обработка экспериментальных данных, банковской сфере, задача "Операционный день банка", ежедневные задачи учета и планирования производства в современных системах управления (стандарты ERP [2]), задачи статистического анализа и синтеза подсистем послепродажного обслуживания в системах интегрированной логистической поддержки наукоемкой продукции [3].

Таким образом, особенность этих классов задач заключается в том,

что при их решении в обработку включаются практически все данные, характеризующие объекты этих задач, и объемы обрабатываемых данных очень велики. Поэтому можно утверждать, что они (эти классы) относятся к области исследований, связанной с обработкой данных больших объемов (Big Data).

Далее рассматривается такая разновидность МОД, которая позволяет учесть эти особенности и, основываясь на свойствах и структурах данных, присущих рассмотренным классам задач, обеспечивает эффективную реализацию вычислительных процессов решения этих задач. Предполагается, что используемые и обрабатываемые в задачах МОД данные хранятся в базах данных (БД) и обрабатываются системами управления базами данных (СУБД). Рассматриваются методы эффективной реализации МОД с использованием современных аппаратных и программных средств. Повышение эффективности достигается за счет использования специальных моделей данных.

Обычно СУБД опирается на файловую систему, присущую конкретному вычислительному комплексу или операционной системе. Файловая система обеспечивает функции управления данными, хранимыми в файлах во внешней памяти. Эти данные организуются с использованием различных методов доступа. Однако при работе с СУБД методы управления файлами, определяющие способы их организации и доступа к отдельным записям, уходят на второй план и становятся невидимыми для программистов, разрабатывающих запросы к базе данных. Это приводит к тому, что способы повышения эффективности обработки данных (оптимизация запросов) перестают быть инструментами прикладного программиста и становятся прерогативой программистов, разрабатывавших СУБД.

Частичные решения, дающие прикладному программисту некоторую свободу действий, появились благодаря объектным моделям данных, которые дают ему возможность создания собственных абстрактных типов данных (классов, объектов). Но главная проблема МОД - построение эффективного процесса обработки данных при помощи некоторого набора типовых операций, - в современном понимании объектно-ориентированного подхода к базам данных не учитывается. Это не позволяет прикладным программистам активно влиять на стратегию и тактику оптимизации обработки данных.

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

Можно сформулировать основные предположения и определить

понятия, связанные с проблематикой повышения эффективности МОД:

1. Данные хранятся в базе данных (БД) и управляются системой управления базами данных (СУБД);

2. Модель данных и способ их организации, присущие конкретной СУБД, не влияют на характер выборки в процессе выполнения операций;

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

4. В дальнейшем для этих последовательностей будет использоваться (в соответствии с традицией) название файлы, а для агрегатов -записи;

5. Предполагается, что время выборки данных из базы в файл минимально (на практике оно определяется свойствами СУБД).

Вовлеченность большинства записей в обработку можно выразить

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

Отношение Ка= --- называется коэффициентом активности

файла. Коэффициент активности определяет метод доступа к файлу. Если он высокий - близок к единице, то более эффективным будет последовательный доступ к файлу, в противном случае, когда он близок к нулю, целесообразно использовать произвольный доступ. Таким образом, основное свойство МОД состоит в том, что коэффициенты активности всех обрабатываемых файлов близки к единице.

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

Далее приводится неформальное описание операций над файлами.

1. Сортировка. Упорядочивает файл в соответствии с некоторым отношением порядка (как правило, лексикографического), заданного на множестве записей файла. Поля записей файла, по значениям которых упорядочивается файл, называются ключами сортировки, ключевыми полями или просто ключами. В реляционной модели данных нет явной операции сортировки, но в языке SQL есть возможность упорядочить результат запроса;

2. Выборка. Выбирает из файла записи, соответствующие заданному критерию. В реляционной модели ей соответствует операция SELECT;

3. Сжатие. Операция квантификации. Заменяет несколько записей, удовлетворяющих заданному критерию, одной записью. При этом часть элементов (полей) записей могут подвергаться групповым операциям, смысл и алгоритмы которых определяются контекстом операции сжатия в предметной области, в которой решается задача. В реляционной модели этой операции соответствует операция PROJECT, которая реализуется в языке SQL возможностью выборки не всех полей отношения и применения операции GROUP BY;

4. Слияние строго упорядоченных файлов. На самом деле это не одна операция, а класс операций, соответствующий классу теоретико-множественных операций в реляционной модели. Отличие состоит в том, что оба файла рассматриваются как упорядоченные множества. Таким образом, слияние строго упорядоченных файлов позволяет реализовать операции подобные объединению, пересечению, разности и симметрической разности множеств. Однако строгое определении этой операции дает возможность прикладному программисту конструировать и другие варианты получения результирующего файла, что в большей степени соответствует концепциям объектно-ориентированного подхода;

5. Слияние нестрого упорядоченных файлов. Для этой операции по крайней мере один из участвующих в ней файлов рассматривается как мультимножество (множество, допускающее включение одного и того же элемента по нескольку раз). Ее алгоритм состоит из следующих шагов:

a. В обоих исходных файлах выбираются группы записей, одинаковых по заданному критерию;

b. Выполняется декартово произведение выбранных групп. Каждая полученная пара записей заменяется единственной записью файла результата;

c. Результаты декартовых произведений объединяются в один файл.

В реляционной модели этой операции соответствует операция JOIN. Для обеспечения эффективности реализации задач МОД необходима возможность параллельной обработки структурированных и высоко

активных данных. Методы параллельной реализации задачи МОД могут быть реализованы не только в рамках файловых систем [4], но и средствами любых СУБД. При этом модель данных, на которой основана СУБД (реляционная, объектная, SQL, NoSQL), не имеет принципиального значения. Однако эти модели не учитывают основные факторы, определяющие эффективность МОД: структурированность и активность данных. Они разрабатывались как универсальные модели, пригодные для решения любых классов задач обработки данных. Но проблемы распараллеливания данных и оптимизации запросов неотделимы от знания структуры данных и оценки вычислительной сложности алгоритмов, которая определяется величиной входного потока [5]. Поэтому невозможно разработать общие методы распараллеливания и оптимизации обработки, которые бы позволяли одинаково хорошо оптимизировать обработку данных для всех возможных классов задач.

Модели данных для реализации МОД. Известно, что проектирование БД - многоступенчатый процесс, состоящий из последовательного построения моделей данных различных уровней. Для того чтобы иметь возможность построения технологий распараллеливания обработки данных и решать проблемы оптимизации запросов для рассматриваемого класса МОД, необходимо построение моделей, учитывающих эти факторы: структурированность и активность данных. К таким моделям можно отнести теоретико-множественную или файловую и многомерно-матричную модели данных [6, 7, 8]. Эти модели играют связующую роль между моделями данных высокого уровня, таких как реляционная, и моделями вычислений (архитектурами вычислительных комплексов). Они обладают следующими свойствами.

Соответствие моделям данных и вычислений. Неформально, требование соответствия двух моделей означает наличие у них свойств, позволяющих использовать одну модель МОД вместо другой. То есть между ними должен быть установлен, по крайней мере, гомоморфизм, а в идеальном случае - изоморфизм. Эти виды соответствий могут быть установлены между предложенными теоретико-множественной и многомерно-матричной моделями и другими моделями данных и вычислений [7,8].

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

описания, позволяющие проектировать процедуры, реализующие их алгоритмы, таким образом, чтобы они наилучшим образом выполнялись в используемой модели вычислений. В распространенных в настоящее время моделях данных эти операции не имеют формализованных описаний. Поэтому качество их реализации определяется мастерством программистов, которые разрабатывают СУБД. Второе требование заключается в предоставлении прикладному программисту возможности применения способов организации и распределения данных, не реализованных в конкретной СУБД, и разработки на основе имеющегося языка манипулирования данными процедур запросов, эффективно использующих выбранные организацию данных и модель вычислений. Применение моделей данных, соответствующих этим требованиям позволит программистам, разрабатывающим СУБД, расширить круг архитектур вычислительных комплексов, на которых станет возможным применение этих СУБД; прикладным программистам - возможность привязывать различные СУБД к выбранной для решения прикладной задачи архитектуре вычислительного комплекса.

Параллелизм алгебраических операций. Формализация операций должна обеспечивать возможность распараллеливания операций совместной обработки двух или более файлов. Формальное определение операций в теоретико-множественной модели позволяет использовать методы распараллеливания, присущие системам, управляемым данными (data flow), а в многомерно-матричной модели - системам на основе векторных (матричных) процессоров. Кроме того, модель должна обеспечивать возможность распараллеливания обмена между оперативной памятью и внешней запоминающей средой (традиционными внешними носителями информации или хранилищами данных).

Оптимизация запросов. Модель должна обеспечивать возможность оптимизации процессов совместной обработки нескольких файлов, реализующих запросы. Это означает, что в терминах модели процесс, реализующий запрос, должен иметь формальное представление в виде алгебраического выражения, которое можно либо автоматически синтезировать с заданными характеристиками, либо преобразовывать для улучшения его характеристик. Спецификацией для построения выражения может служить неформальное описание запроса, например, это может быть набор, содержащий описания входных данных, правил преобразований атрибутов (формул для вычисления значений) и результата. Формальное описание запроса на языке любой модели данных, например, SQL-модели, также может служить спецификацией для синтеза выражения или его оптимизации в процессе трансляции на язык связующей модели. Следовательно, связующая модель должна содержать средства, с помощью которых возможно реализовать синтез нового оптимального процесса и оптимизацию имеющегося процесса посредством эквивалентных преобразований, то есть улучшить предложенный пользователем процесс.

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

Объектно-ориентированная парадигма. Это требование означает, что рассматриваемые формальные модели должны обеспечивать возможность применения современных объектно-ориентированных методов проектирования и программирования. Вместе с тем, принятый сегодня подход к описанию объектных моделей данных имеет сугубо технологический характер, который выражается в том, что отсутствует строгое определение объекта, которое заменяется неформальным описанием его свойств и свойств систем баз данных, построенных на основе объектно-ориентированного подхода. Это приводит к тому, что даже активные сторонники и основоположники объектного подхода к построению систем баз данных указывают на его недостаток, состоящий в отсутствии строгого определения объекта, то есть "объект - это все, что угодно" [10]. Для того чтобы иметь возможность построения строгих и процедурных объектных моделей данных необходимо использовать строгое определение абстрактного типа данных (объекта, класса) как универсальной многоосновной алгебраической системы. На основе такого подхода построены две модели данных, которые удобно использовать для построения технологий МОД.

Теоретико-множественная и многомерно-матричная модели. Пусть А={АЬ ...,Ар} некоторая конечная система конечных множеств, а N={N1, ..., Ыр} конечное множество элементов, называемых именами множеств А1, ..., Ар. Множества А1, ..., Ар могут состоять из элементов любой природы: чисел с фиксированной или плавающей точкой, строк, а также таких структур как массивы или кортежи (записи). На множествах А1, ., Ар могут быть заданы операции и отношения, тогда А1, ., Ар называются типами. Полем записи называется пара F=<Nh А> ^=1, ..., р). N - имя, а А^ -множество значений поля. Кортеж Я=^ь ..., Fp} называется записью типа Я. Кортеж вида ^*={< N1 ,Л*1> ,... ^рЛ*'р>\( Л* е Л,-,г=1,/=1,... ,р) называется экземпляром записи типа Я.

Множество X экземпляров записей типа Я называется множеством записей типа Я или множеством однотипных записей.

Пусть К={К1,.. ,Кт}, (т <р) - конечное множество полей записи Я, такое что К1=Fa1,...,Кт=Fат, причем все Ла( = 1,..,т) - типы, на которых

заданы отношения порядка. Множество К называется множеством ключей,

I* * ]

К1,..,Кт}, для элементов которого выполняется правило К* еЛа (г = 1, ... ,т), называется экземпляром множества ключей (К* называется экземпляром ключа).

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

Две однотипные записи называются эквивалентными, если они содержат одинаковые экземпляры множества ключей. Задание множества ключей K разбивает множество однотипных записей X на классы эквивалентности, содержащие записи с одинаковыми значениями ключей - эквивалентные записи. Совокупность всех классов эквивалентности по отношению, заданному множеством ключей, образует фактор-множество множества однотипных записей X. Такое фактор-множество обозначается Xk, составляющие его классы эквивалентности - Х K , или xk11)'Хк2)> ■■■ . Если некоторому экземпляру множества ключей во множестве X не соответствует ни одной записи, считается, что ему соответствует универсальная неопределенная запись 0. Класс эквивалентности, соответствующий экземпляру множества ключей K и состоящий из единственной записи 0 , будет обозначаться 0 к.

Файлом Хк называется фактор-множество множества однотипных записей Х по отношению эквивалентности порожденному множеством K. При таком подходе файл не может быть неупорядоченным. Если каждый класс эквивалентности файла Хк содержит единственную запись, то файл Хк называется строго упорядоченным, если же в каждом классе эквивалентности может быть более одной записи - нестрого упорядоченным. В этих терминах можно задать теоретико-множественные описания операций над файлами.

Сортировка (sort). Выполнение операции сортировки приводит к построению из исходного множества однотипных записей Х файла Хк (фактор-множества Х по заданному множеству ключей K). Практические соображения требуют, чтобы для любого множества Х можно было подобрать такое множество ключей K, по которому файл Хк будет строго упорядоченным.

Выборка (sel). Пусть даны файл Хк и п(К) предикат, определенный на множестве ключей K. Операция выборки приводит к созданию файла Х1, удовлетворяющего следующим условиям: X^ç XK, то есть файл Хжк есть подмножество файла Хк; V K ( XK> g XK Лл( K )), то есть класс эквивалентности xk присутствует в файле тогда и только тогда, когда все значения ключей в экземпляре множества ключей K* превращают предикат п(К) в истинное высказывание.

Сжатие (quant). Пусть даны файлы Хк, нестрого упорядоченный по множеству ключей К, и YK, строго упорядоченный по множеству ключей К. Классы эквивалентности этих файлов связаны соотношением YK=f (XK), где f - функция, реализующая групповую операцию (операцию квантификации). Тогда считается, что файл Yk получен из файла Хк в

результате применения операции сжатия.

Слияние строго упорядоченных файлов (ms). Пусть даны два файла Хк и Ук строго упорядоченные по одному и тому же множеству ключей К. В результате слияния этих строго упорядоченных файлов образуется файл Zк, классы эквивалентности задаются соотношением ^к = I (X К * К*) . Функция 1 (ХК*,УК-), определенная на классах эквивалентности исходных файлов, задает характер операции. В задачах массовой обработки данных построение функции/может быть следующим:

(Уг), если ХГ = (ХГ), если Тг = ©г

Г:1Г \ если Хг Ф ©г Ф ©г

Функции дь д2, дз реализуют формирование записи выходного файла с вычислением новых значений неключевых полей, из значений неключевых полей записей ХК* и УК . Значения ключей все три функции переносят в выходную запись без изменений.

Слияние нестрого упорядоченных файлов (тт). Пусть Хк и Уь - файлы, упорядоченные (возможно строго) по множествам ключей К и Ь, причем выполняется условие КпL^Я, и пусть М - множество ключей, связанное с множествами К и Ь соотношениями: М с К и L,M п К ^Я иМ п L Я . Это означает, что, по крайней мере, один файл Хм , Ум нестрого упорядочен по множеству ключей М. Слияние файлов производится по множеству ключей М . Класс эквивалентности файла 1М вычисляется по следующему правилу:

если X- 0 , или Тг. - 0Г..

К К II

/(X . .), е противном случае.

¿А- ""

Функция /(ХК*) определена на классах эквивалентности ХК- и Уь-, а ее значение - класс эквивалентности %м, состоящий из элементов, каждый из которых вычисляется из пары элементов, принадлежащей декартову произведению ХК* х^*.

Логическая многомерная матрица определяется как система (П1 х... х Пр) двоичных элементов Л*1..*р (*а=1,...,па, а = 1,....р ), расположенных в точках р-мерного пространства, определяемых координатами /1,... ip, и обозначается Л = ||аг1...гр|| . Над логическими многомерными матрицами определены унарные операции транспонирования, сечения, свертки и бинарные операции сложения и умножения. Далее приводятся краткие определения этих операций.

Матрица Л'=||аг-ч...га| , элементы которой связаны с элементами матрицы Л = ||аг1...гр|| соотношением Л'=||а/ч...¿аЦ , где ('а1..*ар) - какая-нибудь перестановка индексов *р), называется транспонированной

относительно матрицы А соответственно этой перестановке.

Совокупность элементов матрицы А —||а^.. ¡р|| с фиксированными значениями некоторых индексов называется сечением матрицы А. Сечение, произведенное по т индексам (1< т<р ), называется т-кратным и является (рт)-мерной матрицей.

Пусть дано разбиение совокупности индексов матрицы А —||аг1... Л на совокупности /=(/1, ..., и с=(с1, ..., сД Я + и —р . Матрица иП^*'^^М , элементы которой связаны с элементами матрицы А — ||а^| соотношением а1— V а1с,

и А —

V а

называется ^-свернутойматрицей и обозначается

Суммой двух р-мерных матриц А — ||аг1..лЛ и В—||Ь 1...¡р|| с одинаковыми наборами индексов /1,...Ар называется р-мерная матрица с—||сг1...¡р|| с тем же

набором индексов, элементы которой вычисляются по формуле

с ■ — а ■ + Ь ■ ¡1...'р ¡1...'р ¡1...'р.

Пусть даны р-мерная матрица А — Па^лЛ и ^-мерная матрица B—МЬi 1..¡р|| . Можно разбить совокупности индексов ¡1...¡р и ¡1...¡д на четыре группы, содержащие соответственно k,Я,и,v индексов (k,Я,и,v> 0). Причем k +Я + и —р, а Я+и+v— д. Разбиение порождает четыре группы индексов: 1—(11,... ,1к), я—^,..., яя), с — (с1,...,сц) и т — (т1,... . Индексы разбиений 5 и с принадлежат обеим матрицам. Тогда матрицы А и В можно представить в виде А — ||а^с|| и В— 11ст| . Очевидно, что если индексу яу(су) соответствуют индекс ¡а в матрице А и индекс ¡р в матрице В, то па — niв. Матрица С—МCismММ , элементы которой вычисляются по формуле с¡ят — с аискЬ*сш, называется (Я,и) -свернутым произведением матриц А и В и обозначается Я,и( Ах В).

Теоретико-множественная и многомерно-матричная модели соответствуют не только друг другу, но и практически всем используемым в практике обработки данных современным моделям данных. Это соответствие, в зависимости от требований решаемой задачи, может быть как гомоморфизмом так и изоморфизмом.

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

Рассматриваемому варианту МОД присущи регулярные запросы. Такие запросы разрабатываются прикладным программистом в процессе проектирования автоматизированной информационной системы, после чего существуют практически без изменений на протяжении всего жизненного цикла системы. Следовательно, затраты на трансляцию

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

Особенность современного состояния вычислительной техники состоит в том, что, во-первых, используются гибкие архитектуры современных аппаратных средств, основанные на многоядерности и многопроцессорности, и, во-вторых, вычислительные сети обеспечивают такую простоту коммуникаций, которая позволяет легко проектировать различные топологии сетей. Эти два фактора - регулярность запросов и гибкость вычислительных средств - позволяют решать задачи оптимизации архитектуры программно-аппаратного вычислительного комплекса на этапе разработки автоматизированной информационной системы. Причем для каждой системы, входящей в ее состав задачи или даже отдельного запроса может быть разработан индивидуальный программно-аппаратный вычислительный комплекс [11, 12, 13].

Таким образом, в задачах МОД можно выделить две основные цели оптимизации: ускорение отдельных операций обработки одного или нескольких файлов, и построение оптимальных последовательностей операций (процессов или запросов) для решения конкретных задач.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

На основе теоретико-множественной и многомерно-матричной моделей становится возможной оптимизация отдельных операций за счет применения различных параллельных архитектур вычислительных комплексов, реализующих выполнение операций. А также возможны синтез и оптимизация процессов (запросов), составленных из этих операций обработки данных, с одновременным выбором наилучших архитектур вычислительных комплексов, реализующих эти процессы. То есть, предложенные модели позволят производить двухуровневую оптимизацию, как на уровне операций, так и на уровне процессов.

Если характер данных в решаемой задаче МОД определяет выбор многомерно-матричной модели, то проблема параллельной реализации запросов и составляющих их операций решается просто, поскольку параллельные алгоритмы для операций алгебры матриц легко преобразуются в алгоритмы для операций алгебры многомерных матриц. В случае использования теоретико-множественной модели необходимо реализовать распределение данных между памятью вычислителей. В [13] предложен способ распределения файлов, который называется симметричным горизонтальным распределением данных, а для его реализации - эвристический алгоритм, названный алгоритмом бустрофедона.

Для проверки предложенных методов повышения эффективности МОД проведен ряд вычислительных экспериментов [11, 13, 14], в которых на основе теоретико-множественной и многомерно-матричной моделей

были построены программно-аппаратные комплексы с различными архитектурами:

• симметричное мультипроцессирование (SMP) на основе рабочей станции с четырехядерным процессором Intel Core i7 (с технологией Hyper Threading);

• массово-параллельная архитектура на основе локальной вычислительной сети с однотипными рабочими станциями;

• массово-параллельная архитектура на основе облачной системы Windows Azure c распределением вычислений между виртуальными машинами и отдельными базами данных.

В результате применения принципа симметричного горизонтального распределения данных было получено от 6-кратного до 20-кратного ускорение решения задач МОД (в зависимости от количества используемых вычислительных ресурсов).

Из сказанного можно сделать вывод о том, что применение теоретико-множественной и многомерно-матричной моделей в качестве средств, связывающих высокоуровневые модели данных с архитектурами программно-аппаратных вычислительных комплексов, позволит существенно повысить эффективность массовой обработки структурированных данных. Кроме того, предложенные методы параллельной реализации задач массовой обработки данных открывают следующие возможности:

1. Создание на основе гибких архитектур современных средств вычислительной техники виртуальных программно-аппаратных комплексов индивидуально для каждой конкретной задачи, наилучшим образом приспособленных для реализации алгоритмов решения именно этой задачи, и учитывающих характер обрабатываемых данных. Эти комплексы могут быть построены на основе серийных вычислительных средств, что существенно снижает уровень материальных затрат;

2. Использование для разработки и реализации программного обеспечения стандартных систем программирования и СУБД. При этом разработка не требует высокого уровня искусства программирования, так как основана на достаточно простой технологии программирования. Использование любого программного обеспечения, уже приобретенного или открытого, также снижает материальные затраты, необходимые для решения задач МОД;

3. Сокращение времени решения задач повышает степень актуальности информации, что особенно важно при работе с большими данными.

Литература

1. Ступников С.А., Скворцов Н.А., Будзко В.И., Захаров В.Н., Калиниченко Л.А. Методы унификации нетрадиционных моделей данных. - Системы высокой доступности, № 1,

2014, т. 10, с. 18-40.

2. O'Leary, Daniel L. Enterprise resource planning systems. - Cambridge University Press, 2000. -232 с. - ISBN 0-521-79152-9.

3. Синицын И.Н., Шаламов А.С. Лекции по теории систем интегрированной логистической поддержки. - М.: ТОРУС ПРЕСС, 2012. - 624 с. ISBN 978-5-94588-106-8.

4. Кузнецов С.Д. Основы баз данных. - М.: Интернет университет информационных технологий; Бином. Лаборатория знаний, 2007. - 484с. ISBN 978-5-94774-736-2 (БИНОМ Л3).

5. Воеводин В.В. Вычислительная математика и структура алгоритмов. - М.: Изд. МГУ, 2006. -112 с. ISBN 5-211-05310-9

6. Мунерман В.И. Объектно-ориентированная модель массовой обработки данных. - Системы высокой доступности, № 4, 2011, т.7, с. 72-74.

7. Левин Н.А., Мунерман В.И. Реализация объектно-ориентированной модели массовой обработки данных. - Системы высокой доступности, № 3, 2012, т.8, с. 23-25.

8. Мунерман В.И. Многомерно-матричная модель массовой обработки данных. - Системы высокой доступности, № 3, 2012, т.8, с. 19-22.

9. Си Ту Тант Син Параллельные и последовательные варианты динамического программирования / Современные информационные технологии и ИТ-образование / Сборник избранных трудов VII Международной научно-практической конференции . Под ред. Проф. В.А. Сухомлина. - М.: ИНТУИТ.РУ 2012. - 1050с., с. 932-939. - ISBN 978-5-95560140-3.

10. Дейт, К. Дж. Введение в системы баз данных, 8-е издание.: Пер. с англ. - М.: Издательский дом "Вильяме", 2005. - 1328 с.: ил. ISBN 5-8459-0788-8 (рус.)

11. Макаров Д.И., Мунерман В.И. Параллельная реализации операции соединения для массовой обработки данных. - Системы высокой доступности, № 3, 2012, т.8, с. 26-28.

12. Левин Н.А., Мунерман В.И. Модели обработки больших объемов данных в системах массового параллелизма. - Системы высокой доступности, № 1, 2013, т.9, с. 35-43.

13. Мунерман В.И. Реализация обработки больших объемов данных на симметричных мультипроцессорных системах. - Системы высокой доступности, № 2, 2013, т.9, с. 36-9.

14. Мунерман В.И. Опыт массовой обработки данных в облачных системах (на примере Windows Azure). - Системы высокой доступности, № 2, 2014, т.9, с. 3-8.

i Надоели баннеры? Вы всегда можете отключить рекламу.