exam13 5 - stankin/design-part-1 GitHub Wiki

Распределенная обработка данных и параллельные алгоритмы

Реферат к лекции 13: Топология информационных систем

Выполнила: Рогозина Наталия

Проверил: Богач Борис


Распределенная и параллельная обработка данных – обработка данных, выполняемая на независимых, но связанных между собой компьютерах, представляющих распределенную систему. (Макарова)

В основе распределенной обработки лежат две ос­новные идеи:

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

  • объединение распределенных данных на логическом и физическом уровнях в общей БД.

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

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

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

Перечислим основные принципы со­здания и функционирования распределенных баз данных:

  • прозрачность расположения данных для пользовате­ля (иначе говоря, для пользователя распределенная база дан­ных должна представляться и выглядеть точно так же, как и нераспределенная);

  • изолированность пользователей друг от друга (пользо­ватель должен «не чувствовать», «не видеть» работу других пользователей в тот момент, когда он изменяет, обновляет, уда­ляет данные);

  • синхронизация и согласованность (непротиворечи­вость) состояния данных в любой момент времени.

Параллельные вычислительные системы

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

Параллелизм в пространстве

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

Параллелизм во времени

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

Смешанный параллелизм

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

Параллелизм на уровне задач (многопоточность)

Данный вид параллелизма относится к парадигме параллельного программирования и предполагает разбиение задачи на подзадачи, которые реализуются одновременно. Многопоточность предполагает:

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

Параллелизм на уровне данных

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

Параллелизм на уровне алгоритмов

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

Цели и свойства распределенных и параллельных систем

  • обеспечение быстрого, унифицированного и легкого доступа к удаленным ресурсам и разделение их между пользователями прозрачным и эффективным способом;

  • обеспечение эффективного взаимодействия пользователей и программ и обмена информацией между ними;

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

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

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

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

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

  • обеспечение виртуализации, управления и планирования процессов

  • высокая производительность, высокая загрузка оборудования, устойчивость и надежность в работе, низкое энергопотребление и др.

Задачи распределенных и параллельных систем

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

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

Не хватает примеров и выводов.

Источники:

Распределенная система

Параллельные вычислительные системы

Параллельные методы и алгоритмы

Распределенная и параллельная обработка данных