В рубрику "Решения корпоративного класса" | К списку рубрик | К списку авторов | К списку публикаций
Первые модели вычислений были математическими и использовали понятие "глобального состояния" для определения "шага вычисления". Каждый шаг вычисления шел от одного глобального состояния вычислений до следующего.
Подход "глобальности состояний" был продолжен в теории автоматов для конечных автоматов и машин со стеком, в том числе их недетерминированных версий.
Первыми параллельными программами были обработчики прерываний. Если в процессе работы компьютеру необходимо принять информацию от внешних устройств, то выполнение текущей программы "прерывается" и запускается специальный код, называемый обработчиком прерывания, который помещает информацию в буфер, откуда она может быть впоследствии считана.
В начале 1960-х гг. прерывания стали использовать для имитации одновременного выполнения нескольких программ на одном процессоре. Наличие параллелизма с общей памятью привело к проблеме его управления. Для ее решения Эдсгер Дейкстра разработал семафоры, а позднее, в период между 1971 и 1973 г., Чарльз Хоар и Пер Хансен для решения этой проблемы разработали мониторы. Однако ни одно из этих решений не создавало в языках программирования конструкций, которые предоставляли бы доступ к совместным ресурсам. Инкапсуляцию сделали позже Хьюитт и Аткинсон, построив параллельно-последовательный преобразователь.
Лямбда-исчисление Алонзо Черча можно рассматривать как самый первый язык программирования обмена сообщениями.
Семантика лямбда-исчислений выражается при помощи подстановок переменных, в которых значения параметров заменяются в теле вызываемых лямбда-выражений. Модель подстановок непригодна для параллелизма, поскольку она не обеспечивает возможность совместного использования ресурсов. Под влиянием лямбда-исчислений интерпретатор языка программирования LISP использует структуры данных, в которых значения параметров не подлежат замене в теле запускаемых лямбда-выражений. Это обеспечивает совместное использование эффектов обновления общих структур данных, но не обеспечивает параллелизм.
До появления модели акторов сети Петри широко использовались для моделирования недетерминированных вычислений.
Сеть Петри представляет собой двудольный ориентированный граф, состоящий из вершин двух типов - позиций и переходов, соединенных между собой дугами. Вершины одного типа не могут быть соединены непосредственно. В позициях могут размещаться метки (маркеры), способные перемещаться по сети.
Событием называют срабатывание перехода, при котором метки из входных позиций этого перехода перемещаются в выходные позиции. События происходят мгновенно, либо разновременно, при выполнении некоторых условий.
Недостаток этой модели в том, что сети Петри моделируют управление потоком, а не сам поток данных. Кроме того, элементарный шаг вычислений в сети Петри представляет собой переход, при котором признаки одновременности исчезают на входах перехода и появляются на его выходах. Несмотря на эти недостатки, сети Петри остаются популярной моделью при моделировании параллелизма.
Модель акторов сформировалась на базе предшествующих моделей вычислений в 1973 г. Модель акторов - это математическая модель параллельных вычислений, которая трактует понятие "актор" как универсальный примитив параллельного численного расчета: в ответ на сообщения, которые он получает, актор может принимать локальные решения, создавать новых акторов, посылать свои сообщения, а также устанавливать, как следует реагировать на последующие сообщения.
Актор является вычислительной сущностью, которая в ответ на полученное сообщение может одновременно:
Может существовать произвольная последовательность вышеописанных действий, и все они могут выполняться параллельно.
Развязка отправителя и посланных сообщений стала фундаментальным достижением модели акторов, обеспечившая асинхронную связь и управление структурами как прототип передачи сообщений.
Получатели сообщений идентифицируются по адресу, который иногда называют "почтовым". Таким образом, актор может взаимодействовать только с теми акторами, адреса которых он имеет. Он может извлечь адреса из полученных сообщений или знать их заранее.
Модель акторов характеризуется параллелизмом вычислений внутри одного актора и между ними, динамическим созданием акторов, включением адресов акторов в сообщения, а также взаимодействием только через прямой асинхронный обмен сообщениями без каких-либо ограничений на порядок прибытия сообщений.
Модель акторов может быть использована для моделирования параллельных систем, в которых есть распараллеливание вычислений:
В отличие от предшествующих ей моделей, основанных на комбинировании последовательных процессов, модель акторов была сразу разработана как параллельная модель, последовательность в которой представляет собой особый случай, вытекающий из одновременных вычислений.
Основным новшеством модели акторов было введение понятия поведения, определенное как математическая функция, выражающая действия актора, когда он обрабатывает сообщения, включая определение нового поведения на обработку следующего поступившего сообщения. Поведение обеспечивает функционирование математической модели параллелизма.
В настоящее время рост производительности микросхем происходит за счет использования методов локального и глобального массового параллелизма. Локальный параллелизм используется в новых микросхемах для 64-разрядных многоядерных микропроцессоров, в мультичиповых модулях и высокопроизводительных системах связи. Глобальный параллелизм в настоящее время используеися в новом оборудовании для проводной и беспроводной широкополосной пакетной коммутации сообщений (Wi-Fi и Ultra Wideband). Модель акторов применяется также в клиентах облачных вычислений.
Искусственные нейронные сети (ИНС) - это математические модели, построенные по принципу организации и функционирования биологических нейронных сетей нервных клеток живого организма, представляющих собой систему соединенных и взаимодействующих между собой объединенных в достаточно большую сеть с управляемым взаимодействием простых процессоров (искусственных нейронов), которые могут получать и принимать сигналы.
Вычислительные системы, основанные на искусственных нейронных сетях, обладают рядом качеств, которые отсутствуют в машинах с архитектурой фон Неймана (но присущи мозгу человека):
ИНС позволяют моделировать искусственный интеллект с помощью компьютерных алгоритмов. Нейронные сети используются в задачах адаптивного управления для робототехники, а также при распределении нагрузки между параллельно работающими устройствами. Отличие этих методов от всех вышеописанных - в алгоритмах обучения. Нейронные сети не программируются в привычном смысле этого слова, они обучаются. Обучение заключается в нахождении коэффициентов связей между нейронами, то есть в обобщении зависимостей между входными и выходными данными. Это значит, что в случае успешного обучения сеть сможет выдать верный результат на основании данных, которые отсутствовали в обучающей выборке, а также неполных и/или "зашумленных", частично искаженных данных. Тип сети для конкретной постановки задачи выбирают с учетом имеющихся для обучения данных. Для обучения с учителем требуется наличие для каждого элемента выборки "экспертной" оценки. Иногда получение такой оценки для большого массива данных просто невозможно. В этих случаях естественным выбором является сеть, обучающаяся без учителя, например самоорганизующаяся карта Кохонена или нейронная сеть Хопфилда. При решении других задач, таких как прогнозирование временных рядов, экспертная оценка уже содержится в исходных данных и может быть выделена при их обработке. В этом случае можно использовать многослойный перцептрон или сеть Ворда.
С математической точки зрения обучение нейронных сетей - это многопараметрическая задача нелинейной оптимизации.
После выбора общей структуры ИНС нужно экспериментально подобрать параметры сети. Для сетей, подобных перцептрону, это будет число слоев, число блоков в скрытых слоях (для сетей Ворда), наличие или отсутствие обходных соединений, передаточные функции нейронов. При выборе количества слоев и нейронов в них следует исходить из того, что способности сети к обобщению тем выше, чем больше суммарное число связей между нейронами. С другой стороны, число связей ограничено сверху количеством записей в обучающих данных.
После выбора топологии сети необходимо подобрать параметры обучения нейронной сети. Этот этап особенно важен для сетей, обучающихся с учителем. От правильного выбора параметров ИНС зависит скорость сходимости процесса обучения к правильным ответам.
В процессе обучения сеть в определенном порядке просматривает обучающую выборку. Порядок просмотра может быть последовательным, случайным и т.д. Некоторые сети, обучающиеся без учителя, например сети Хопфилда, просматривают выборку только один раз. Другие, например сети Кохонена, а также сети, обучающиеся с учителем, просматривают выборку множество раз, при этом один полный проход по выборке называется эпохой обучения. При обучении с учителем набор исходных данных делят на две части - собственно обучающую выборку и тестовые данные; принцип разделения может быть произвольным. В процессе обучения могут проявиться различные проблемы, такие как паралич или попадание сети в локальный минимум поверхности ошибок.
Даже в случае успешного обучения сеть не всегда обучается именно тому, чего от нее хотели. Известен случай, когда сеть обучалась распознаванию изображений танков по фотографиям, однако позднее выяснилось, что все танки были сфотографированы на одном и том же фоне. В результате сеть "научилась" распознавать этот тип ландшафта, вместо того чтобы "научиться" распознавать танки. Таким образом, сеть "понимает" не то, что от нее требовалось, а то, что проще всего обобщить.
Для того, чтобы обеспечить более высокий уровень точности анализа данных из ХД в случае параллелизации расчетных алгоритмов, реализующих аналитические методики, можно не хранить в ХД промежуточные итоги, а проводить расчеты каждый раз при построении аналитического запроса.
Анализ технологий параллельных вычислений показал, что их применение позволит кардинальным образом снизить загрузку каналов передачи управляющих взаимодействий и нагрузку на них, что значительно понизит стоимость эксплуатации всего ХД в части аппаратного комплекса, так как именно оборудование, предназначенное для коммутации, наиболее часто выходит из строя.
Возможно использование методов параллельных вычислений для того, чтобы максимально синхронизировать работу подсистемы управления метаданными и подсистемы управления данными; для определения состава и объема загруженных данных; разработки механизма контроля выгружаемых данных и данных, находящихся в КХД БР; адаптации процедур загрузки в хранилище при изменении требований к собираемым данным; переводе приложений в трехзвенную архитектуру из двухзвенной, который скажется на пересчете кубов при использовании существующих в настоящий момент в Банке России каналов связи.
Опубликовано: Журнал "Технологии и средства связи" #5, 2012
Посещений: 13013
Статьи по теме
Автор
| |||
В рубрику "Решения корпоративного класса" | К списку рубрик | К списку авторов | К списку публикаций