NeiroTECN2 - Электронная библиотека БГУ

advertisement
Нейросетевые технологии в
обработке и защите данных
Лекция 2. Принципы параллельной
обработки данных информационных
систем. Нейрокомпьютеры
Решение научно-технических задач в атомной
физике, климатологии, космических исследованиях,
авиастроении, биомедицинских исследованиях, а
также для систем видеонаблюдения, в частности,
связано с обработкой больших объемов данных.
Технология параллельных вычислений развивается
по двум направлениям.
Первое – вычислительные системы с массовым
параллелизмом на базе традиционных процессоров
с последовательной системой команд, RISC и
сигнальных процессоров.
Второе – вычислительные системы на основе
искусственных нейронных сетей (ИНС).
2
Сложные системы
Сложные системы, исследование которых
представляет наибольший интерес в рамках
методологии системного моделирования,
характеризуются большим количеством
элементов системы
и различными типами взаимосвязей между
этими элементами.
Причина повышенного внимания к ИНС
кроется в:
• Потенциальных возможностях выполнения
интеллектуальных операций и существенного
увеличения критерия
производительность/стоимость в сравнении с
традиционными компьютерами, суперЭВМ и
параллельными вычислительными системами.
• Массовый параллелизм вычислений имеет
принципиальное значение для нейрокомпьютеров
и является их свойством. Для нейрокомпьютерных
технологий обработки изображений также
характерна их предварительная обработка.
4
•
С помощью нейрокомпьютеров
решаются не формализуемые или плохо
формализуемые задачи. В их алгоритмы
решения включается процесс обучения на
реальном экспериментальном материале.
• Теория искусственных нейронных сетей –
логическая основа нейрокомпьютеров.
Искусственная нейронная сеть – сеть с
конечным числом слоев из однотипных
элементов.
5
Классификация параллельных
компьютеров и систем
Существует много способов организации
параллельных вычислений: векторно-конвеерные
компьютеры, матричные системы, компьютеры с
широким командным словом, кластеры,
компьютеры с многопоточной архитектурой и т. д.
Классификация Флинна М. (Flynn M., 1966г.)
базируется на понятиях потоков,
последовательности команд и данных,
обрабатываемых процессором. Она включает
четыре класса архитектур.
6
1. Одиночный поток команд – одиночный поток
данных (ОКОД). К этому классу относятся
классические последовательные компьютеры
фон-Неймановского типа, например, PDP-11.
2. Одиночный поток команд – множественный
поток данных (ОКМД). Примерами этого класса
ЭВМ являются ILLIAC-4, Cray 1 и др.
3. Множественный поток команд – одиночный
поток данных (МКОД). Реально существующих
систем этого класса нет.
4. Множественный поток команд – множественный
поток данных (МКМД).
7
Примерами этого класса ЭВМ являются
Российская параллельная ЭВМ ПС2000, Cray
TSE, суперкомпьютеры:
 Японский NEC (NEC the Earth Simulater),
содержащий 640 вычислительных узлов по 8
векторных процессора, всего 5120
микропроцессоров и предназначенный для
моделирования климатических процессов в
масштабах планеты;
Американский ASCI White, объединяющий 8192
процессора Pentium Pro Министерства
Энергетики США;
Белорусско-Российский СКИФ К-1000М,
установленный в БГУ, в настоящее время
содержащий 128 двухядерных процессора.
8
Технологии параллельного
программирования
1. Для компьютеров с общей памятью популярным
средством программирования является
технология OpenMP, для которого используется
термин «нить» вместо процесс;
2. Процессоры с индивидуальной памятью
используют библиотеку модулей MPI - Message
Passing Interface;
3. Система программирования mpC для
неоднородных сетей, разработанная в институте
системного программирования РАН.
9
Параллельные алгоритмы
Наиболее распространенной моделью описания
параллельных алгоритмов является модель
потоков.
Поток – последовательный процесс, имеющий
доступ к общей для всех потоков памяти.
Большинство используемых в настоящее время
параллельных архитектур являются воплощением
потоков в аппаратуре. Наряду с этим используются
расширения языков программирования,
поддерживающие параллелизм по данным, или
различные библиотеки передачи сообщений (MPI,
OpenMP, PVM).
10
Параллельные алгоритмы
В распределенных системах часто
применяются механизмы распределенных
вычислений, эмулирующих потоки, такие
как, например, CORBA и .NET.
В этих распределенных объектноориентированных технологиях компоненты
взаимодействуют друг с другом через
прокси-объекты, которые ведут себя так, как
будто бы удаленный и локальный объекты
размещены в одной памяти.
11
Агентная модель
Агентная модель – математическая модель
конкурентных вычислений, базирующаяся на
концепции «все является процессом». В ответ
на принимаемые сообщения можно:
 посылать конечное число сообщений другим агентам;
 создавать конечное число новых агентов;
 определять свое поведение для последующих ответов.
Эта модель позволяет осуществлять
асинхронное взаимодействие и контролировать
структуры данных посредством шаблона
передачи сообщений.
12
Агентная модель
Erlang – свободно распространяемая
кроссплатформенная среда и язык
программирования, разработанные компанией
Erricson, реализующая агентную модель
распределенных вычислений.
Язык включает в себя средства порождения
параллельных процессов и их коммуникации с
помощью асинхронных сообщений.
Программа транслируется в байт-код
исполняемой виртуальной машиной, что
обеспечивает переносимость программных средств.
13
Модель MapReduse
Другим примером использования проверенных
шаблонов проектирования многопоточных приложений
является каркас MapReduse, реализующий шаблоны
параллельного программирования .
Этот шаблон используется компанией Google для
распределенной обработки больших массивов данных.
Параметрами шаблона являются не данные или их
структуры, а функции. В качестве входных данных
представляются две функции Map и Reduse.
Функция map обрабатывает пары ключ-значение и
генерирует набор промежуточных пар ключ-значение, а
функция reduse объединяет промежуточные пары ключзначение, связанные одним промежуточным ключом.
14
Сервер приложений CouchDB
CouchDB – документно-ориентированная
система управления базами данных, написанная на
языке Erlang и не требующая описания схемы
данных.
CouchDB можно рассматривать как сервер
WEB-приложений, так как в СУБД встроен
производительный WEB-сервер, а программный
код, как и данные, сохраняется в этой же базе
данных.
CouchDB предназначена для работы с
полуструктурированной информацией и имеет
следующие особенности:
15
данные сохраняются не в строках и столбцах,
а в виде деревьев;
 типизация элементов данных не поддерживается, вместо
этого используются создаваемые пользователями функциивалидаторы;
 целостность базы данных обеспечивается на уровне
отдельных записей, но не уровне связей между ними;
 операция объединения между таблицами не определена;
 для построения индексов и выполнения запросов
используются функции-представления (тексты в базе
данных);
 поддерживается вертикальная масштабируемость, что
обеспечивает поддержку не только объемных кластеров, но
и портативных устройств.
16
Нейрокомпьютеры относятся к классу
МОКМД – множественный поток
одиночных команд – множественный
поток данных или вычислительные
системы с параллельными потоками
одинаковых команд и множественным
потоком данных.
Обработка данных осуществляется в
реальном масштабе времени, если время
обработки соизмеримо со временем
протекания процесса.
17
Нейрокомпьютеры
Нейрокомпьютеры применяются , в основном, как
специализированные модули систем. Известны
следующие:
 «Геркулес», г. Казань;
 «Synapce» фирмы Сименс;
 Нейромодуль NM6404 – процессор цифровой
обработки сигналов с переменной длиной операндов,
разработанный в России;
 Нейрокомпьютер «Кремниевый мозг», используемый
в США для обработки аэрокосмических изображений;
 Нейронный компьютер SpiNNaker (Spiking Neural
Network Architecture), создаваемый в Манчестерском
Университете (50 чипов по 20 микропроцессоров
ARM968).
18
Нейропакеты
Нейропакеты предназначены для
решения широкого класса
трудноформализуемых задач, в основном, с
целью прогнозирования и параллельной
обработки данных.
Нейроэмуляторы:
• BrainMaker Professional фирмы California
Scientific Software;
• Neural Works Professional компании Neural
Ware;
• Neural Network Toolbox системы MatLab .
19
Пример распараллеливания
Для демонстрации алгоритмов параллельных вычислений
можно пользоваться, например, программой вычисления
числа π. Число π вычисляется как значение следующего
интеграла, умноженное на 4:
1

0 1  x 2 dx  arctg (1)  arctg (0)  4 ,
1
1
i
1
1
4
,

2 xi
0 1  x 2 dx  n 
i 1 1  xi
n
n
20
Download