NetNado
  Найти на сайте:

Учащимся

Учителям



Моделирование нейросетевых вычислений на кластерных системах


Нейрокомпьютерная обработка сигналов и изображений

© электронная версия подготовлена АВТЭКС Санкт-Петербург, http://www.autex.spb.su


МОДЕЛИРОВАНИЕ НЕЙРОСЕТЕВЫХ ВЫЧИСЛЕНИЙ НА КЛАСТЕРНЫХ СИСТЕМАХ

Воронков И.М.

ФГУП НИИ Автоматической Аппаратуры им. академика В.С. Семенихина

Научно Тематический Центр Нейрокомпьютеров

Моделирование физической среды связанно с необходимостью найти зависимость физических параметров среды от координат пространства и времени в некоторой области пространства, то есть найти решение системы уравнений, записанной в общем виде: , где вектор - физические параметры среды, - вектор координат, t – время. Функция Ψi определяет взаимосвязь физических параметров среды или задает граничные условия для области, n число таких функций для конкретной задачи. Поиск решения осуществляется с использованием сеточных методов [4]. Как следствие точность решения зависит от дискретизации по координатам и по времени, что приводит к необходимости производить множество однотипных вычислений на огромном числе данных, с этим могут справиться только параллельные вычислительные системы (ПВС). Методы синтеза нейросетевых алгоритмов, в том числе для конкретных задач моделирования физической среды описаны в [1 - 3]. В данной работе использовались клеточные нейронные сети. После перехода от физической постановки задачи к нейросетевому алгоритму, возникает необходимость провести ряд экспериментов, для того чтобы выбрать оптимальные настройки нейронной сети.

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

Для реализации управления узлами кластера и обмена между узлами использовалась технология MPI (Message Processing Interface), что было реализовано в качестве одного из модулей пакета «Нейроматематика». Пакет «Нейроматематика» имеет модульную архитектуру и предназначен не только для моделирования нейросетевых вычислений на кластерной сети, но так же и для организации вычислений на графических платах. Один из типов подключаемых модулей является диспетчером и предоставляет удобный API (программный интерфейс) для выбора узлов, подготовки заданий, запуска и мониторинга состояний заданий и предоставляет необходимые функции для отправки заданий по узлам и сбора результатов. Другой тип динамически подключаемых модулей – графический интерфейс для конкретной задачи. В качестве такой задачи была выбрана задача расчета аэродинамических характеристик среды. Данный модуль способен визуализировать начальные данные и результат, а при необходимости и эволюцию. Для проведения расчета на выделенных узлах кластерной сети запускаются модули задач, и после получения от диспетчера начальных данных происходит расчет, а затем сбор всех результатов диспетчером. В процессе расчета каждый узел обменивается непосредственно со своими соседями и отсылает ряд диагностических сообщений диспетчеру, на основании которых оператор может судить о ходе выполнения расчета.



Рис.1 ПВС с диспетчером

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

Основная причина неоднородности загрузки узлов заключается в несовершенстве механизмов управления и синхронизации расчетов на отдельных узлах кластера, часто базирующихся на ярусно-параллельной форме представления алгоритма. Это приводит к необходимости пошаговой синхронизации и, как следствие, к простою всей ПВС до окончания выполнения самого медленного задания на каждом ярусе (обычно временном шаге) алгоритма. Наиболее удобным средством анализа алгоритмов параллельных вычислений являются графы [5]. Однако пошаговая синхронизация для алгоритмов, представленных с помощью информационных графов в параллельной форме [6], не является необходимостью и должна быть заменена на управление и синхронизацию по готовности данных [7]. Следовательно, при реализации на кластерной системе необходимо построить алгоритм таким образом, чтобы не только динамически изменялась нагрузка на узел в процессе расчета, но и чтобы управление и синхронизация происходили по готовности.

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

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

В данной работе предложен следующий механизм переразбиения:

- На основании статистики простаивания узел или вычислительный поток при следующем обмене результатами вместо или вместе с частью результатов посылает запрос на то, чтобы ему были переданы следующие несколько срезов ячеек. Таким образом происходит увеличение числа обсчитываемых ячеек «быстрым» узлом и уменьшение на «медленном» узле.

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

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

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

Вышеизложенный подход был использован при реализации расчетных модулей для решения аэродинамических задач в рамках проекта «Нейроматематика». Как показали исследования в локальной сети из 16 компьютеров, такой способ организации между узлами и диспетчером является приемлемым для тестирования параллельных алгоритмов. В качестве исходных данных использовалась трехмерная модель здания Сиднейской оперы, размеры сетки которой по координатам были X(100);Y(200);Z(300) (данные подготовлены в формате techplot). Однако проводить комплексное исследование на более чем 10 узлах оказалось затруднительно (все данные для расчета умещаются в памяти одного компьютера). Масштаб задачи не соответствует масштабам вычислительных ресурсов. На 10 узлах масштабируемость составила 90% тогда как на 2 значение близко к идеалу и составило 98%.

Оценка производительности кластера производилась из полученных временных характеристик и при подсчете только «полезных операций», то есть исключая любые операции на организацию циклов и запись/выборку данных в/из памяти для всех переменных и структур кроме памяти выделенной для хранения состояний ячеек. На каждую ячейку необходимо выполнить обязательных операций с плавающей точкой (+)14; (-)32; (*)43; (/)7, а также в зависимости от типа соседних ячеек в среднем еще (+)18; (*)18 (усреднение по разным ветвлениям кода для задачи, на которой производились вычисления). Операций с памятью: (чтение R)174; (запись W)53; (сравнение и ветвление IF)30. Общее число ячеек области равно 102х202х302=6 222 408, но в расчетах участвует только один тип ячеек, для остальных вычисления не производятся, ячеек такого типа 85%. Было проведено 100 временных шагов за 53.2 секунды на 10 узлах. Производительность такой конфигурации составила 3,867(1,312) GFlop/s, тогда как расчет этой же области на одном узле занимает 480 секунд то есть 428(145) MFlop/s. Каждый узел кластера имел следующее оборудование Pentium3.0GHz; 1Gb двухканальной оперативной памяти; 1GHz сетевую карту и находился под управлением WindowsXP. Столь низкая производительность по сравнению с результатами тестов Linpack на системах под управлением UNIX (порядка 800 MFlop/s для одного процессора) обусловлена большими накладными расходами на организацию всех потоков обмена и вычислений, а также недостаточным размером задачи.

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

Литература

  1. Галушкин А.И. Теория нейронных сетей. // М.: ИПРЖР, 2000. – 416 с.

  2. Горбаченко В.И. Нейрокомпьютеры в решении краевых задач теории поля / Общая ред. А.И. Галушкина. // М.: ИПРЖР, 2003. – 336 с. (Нейрокомпьютеры и их применение).

  3. Галушкин А.И., Остапенко Г.П., Коробкова С.В., и др., Программный комплекс «Нейроматематика», Пояснительная записка к техническому проекту ОКР по теме ИТ-13.3/001 «Разработка прикладных технологий для инженерных задач с плотными системами уравнений и сверхбольшим числом неизвестных», Федеральное агентство по науке и инновациям, г.Москва 2006г.

  4. Самарский А.А., Николаев Е.С. Методы решения сеточных уравнений. // М.:Наука,1978. 561с

  5. Ершов Н.М. Построение графов вычислительных алгоритмов методом автотрассировки. // Программирование. 2000, № 6, с. 58-64.

  6. Воеводин В.В. Математические модели и методы в параллельных процессах. // Москва: Наука, 1986.

  7. Kuzmin D.A., Kazakov F.A., Legalov A.I. Description of parallel-functional programming language // Advances in Modeling & Analysis. AMSE Press., 1995, Т. 28, № 3. С. 1-17.


MODELLING OF NEURONETWORKS CALCULATIONS ON CLUSTER SYSTEMS

Voronkov I.

Scientific Research Institute of the Automatic Equipment it. Academician V.S.Semenikhin

Scientific Thematic Center of Neurocomputers

Modelling of physical environment means necessity to find dependence of physical parameters of environment on coordinates of space and time in some area of space, that is to find the decision of system of the equations which have been written down in a general view: , where vector - physical parameters of environment, - vector of coordinates, t – time. Function Ψi defines interrelation of physical parameters of environment or sets boundary conditions for area, n is the number of such functions for the specific task. Search of the decision is carried out with use of net methods. In the given work cellular neural networks were used.

At modelling neuronetworks calculations are used cluster systems from the usual widespread computers as total throughput on access to data in cluster systems grows linearly at increase in quantity of units.

For realization of cluster units management and an exchange between units technology MPI (Message Processing Interface) was used, that has been realized as one of modules of a package «Neuromathematics». In the given work the method of dynamic redistribution of the general task on the basis of statistics of idle standing of units pending is offered. Accumulation of statistics and redistribution occurs without participation of the operating unit (dispatcher). The dispatcher carries out only initial splitting of all area between units, gathering of results during if it is necessary, and upon termination of all time steps and as detection of refusals on units and sending of necessary messages for restarting calculation processes on cluster units.



РЕШЕНИЕ ЗАДАЧ АЭРОДИНАМИКИ С ПОМОЩЬЮ КЛЕТОЧНЫХ НЕЙРОННЫХ СЕТЕЙ

Коробкова С.В.

ФГУП НИИ Автоматической Аппаратуры им. В.С. Семенихина НТЦ Нейрокомпьютеры

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

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

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

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

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

Для решения задачи необходимы следующие объекты:

– солид – описание геометрии крыла (и, возможно, фюзеляжа);

– газ – описание физических и химических свойств набегающего потока и эжектируемых струй;

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

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

Исходными данными для данной задачи являются:

– начальное распределение газодинамических параметров в счетной области;

– геометрия жилого района;

– граничные условия для набегающего потока.

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

Нейросетевая постановка задачи

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

Выход 3D клеточной нейронной сети - рассчитанные нейронной сетью значения вектора , где - скорости газа в данной ячейке по направлениям соответственно, - полная энергия газа в данной ячейке, - давление газа в данной ячейке, - плотность газа в данной ячейке, - значение адиабаты газа в данной ячейке (после n расчетных итераций).

Желаемый выход 3D клеточной нейронной сети - значения вектора по прошествии заданного времени, рассчитанные с помощью пакета GDT.

Нейронная сеть представляет собой двухслойную клеточную нейронную сеть с равным количеством нейронов первого и второго слоя. Количество нейронов в первом слое равно количеству ячеек сетки. Каждый нейрон первого слоя связан с 4 соседями в первом слое и вышележащим нейроном второго слоя, аналогично каждый нейрон второго слоя связан с 4 соседями в первом слое и его выход поступает на вход нижележащего нейрона первого слоя. Веса связей (внутри первого или второго слоя) задаются как площади граней сетки, веса связей между слоями равны 1. По связям передаются вектора типа - вектор значений параметров газа в ячейке.

Реализация

Решение задач аэродинамики с помощью нейронных сетей реализовано программным и программно-аппаратным способом в виде модулей «Эжекция» и «Ветер» программного комплекса «Нейроматематика».

Поддерживаются три варианта аппаратной поддержки вычислений:

- вычисления на рабочей станции;

- вычисления на кластерной системе из 17 ПЭВМ;

- вычисления на рабочей станции с графическим ускорителем.

Тестовая задача: Исследование обтекания крыла F15 (Эжекция)

В ходе эксперимента моделируется влияние дозвуковой эжекционной струи на сверхзвуковое течение воздуха вокруг консоли крыла одной из модификаций истребителя F-15.

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

Для проведения эксперимента были выбраны следующие параметры среды: давление в набегающем потоке 101325 Па, плотность набегающего потока 1,29 кг/м3, скорость набегающего потока 700 м/с. Давление эжекционной струи 303975 Па, плотность эжекционной струи 1,29 кг/м3, скорость эжекционной струи 112 м/с. Угол наклона эжекционных сопел 16,5 градусов к поверхности консоли. Угол атаки консоли 9 градусов. Консоль не подвержена деформациям. Воздух считается газом, течение которого описывается уравнениями Навье-Стокса.

В файле F15_ejection.dat содержатся данные, описывающие трехмерную область, размерность которой 75х175х175 ≈ 2х106 ячеек – начальные данные. Существует несколько подходов к проблеме определения количества неизвестных для задач аэродинамики:

1) количество переменных определяется как произведение количества ячеек области расчета на количество параметров ячейки. В данном случае (для задачи прогнозирования ветровой обстановки в застроенных кварталах) каждая ячейка газового поля содержит 8 газодинамических параметров (скорости по 3 направлениям, энергия, давление, плотность, параметр адиабаты и тип ячейки). Рассчитывать требуется все параметры, кроме типа ячейки, который остается неизменным на протяжении всего расчета. Таким образом, имеем 7х2х106 ≈ 1,4х 107 неизвестных;

2) количество переменных определяется как произведение количества ячеек области расчета на количество параметров ячейки на количество шагов расчета. В данном случае (для задачи прогнозирования ветровой обстановки в застроенных кварталах) каждая ячейка газового поля содержит 8 газодинамических параметров (скорости по 3 направлениям, энергия, давление, плотность, параметр адиабаты и тип ячейки). Рассчитывать требуется все параметры, кроме типа ячейки, который остается неизменным на протяжении всего расчета. Для контрольно демонстрационной задачи выполняется 10 шагов расчета. Таким образом, имеем 10х7х2х106 ≈ 1,4х 108 неизвестных.

При тестировании был применен первый подход, когда считается, что количество переменных равно количеству ячеек расчетной области – 1,4х107.

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

Тестовая задача: Исследование воздействия ветра на здания Сиднейской оперы (Ветер)

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

Актуальность задачи связана с изменением климатической обстановки в мире. Для тестирования разработанного модуля «Ветер» ПКНМ решалась задача прогнозирования ветровой нагрузки на здания Сиднейской оперы. Данная задача является конкретной практической задачей. Резкое увеличение числа ураганов и торнадо, в том числе в районах, где ранее их не наблюдалось, а также неудобообтекаемая форма рассматриваемого здания, приводящая к повышению коэффициента аэродинамического сопротивления, требуют отдельного рассмотрения ветровой нагрузки на данное здание в целом и его уязвимые части (в первую очередь, окна) в частности.

Для проведения эксперимента были выбраны следующие параметры среды: давление в набегающем потоке 101325 Па, плотность в набегающем потоке 1,29 кг/м3. Приведенная фронтальная скорость ветра 50 м/с. Здание не подвержено деформациям.

В файле Sidney_Opera.dat описана трехмерная область, размерность которой 200х100х300 = 6х 106 ячеек. Аналогично предыдущей задаче можно посчитать количество неизвестных для задачи прогнозирования ветровой обстановки здании Сиднейской оперы двумя способами:

1)  7х6х106 ≈ 4х 107 неизвестных;

2) 10х7х6х106 ≈ 4х108 неизвестных.

При тестировании был применен первый подход, когда считается, что количество переменных равно произведению количества ячеек расчетной области на количество параметров ячейки - 4х107.

Описание и результаты проведенных экспериментов

В ходе проведения экспериментов было доказано, что результаты расчета аэродинамических задач с помощью модулей «Ветер» и «Эжекция» полностью совпадают либо различаются не более чем в пятом знаке от результатов расчета тех же задач при помощи пакета GDT.

Далее приведены временные характеристики работы представленных модулей при расчете тестовых аэродинамических задач прогнозирования ветровой нагрузки на здание сиднейской оперы и исследования обтекания крыла F15.



Рис 1 Зависимость времени расчета от количества узлов классического кластера для задачи прогнозирования ветровой обстановки



Рис 2 Зависимость времени расчета от количества узлов классического кластера для задачи управления F15 с помощью эжекции на крыльях

Литература

  1. Галушкин А.И. Теория нейронных сетей. ИПРЖР, М., 2000

  2. Горбаченко В.И. Нейрокомпьютеры в решении краевых задач теории поля / Общая ред. А.И. Галушкина. – М.: ИПРЖР, 2003. – 336 с. (Нейрокомпьютеры и их применение).

  3. Горбаченко В.И. Нейрокомпьютеры и решение краевых задач теории поля.

  4. Аляутдинов М.А., Антонова А.В., Баранов В.А., Галуза Ю.П., Галушкин А.И., Зибаров А.В., Казанцев П.А., Кацин А.С., Кислова Т.К., Козлов К.В., Коробкова С.В., Кутовой А.Н., Лесин В.О., Лодягин А.М., Лось В.Ф., Медведев А.В., Остапенко Г.П., Пантюхин Д.В., Парфилов А.А., Скрибцов П.В. Стрижков В.А. Программный комплекс «Нейроматематика» Пояснительная записка, 2006.

  5. Аубакиров Т.О., Белоцерковский С.М., Желанников А.И., Ништ М.И. Нелинейная теория крыла и ее приложения. - Алматы "Гылым", 1997



Цифровая обработка сигналов и ее применение

Digital signal processing and its applications

страница 1


скачать

Другие похожие работы: