Научная статья на тему 'Использование параллельных вычислений в кластерном анализе для формирования комплексных деталей'

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

CC BY
365
43
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КЛАСТЕРНЫЙ АНАЛИЗ / ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ / ВЫЧИСЛИТЕЛЬНЫЙ ЭКСПЕРИМЕНТ / НЕЧЕТКИЙ АЛГОРИТМ / CLUSTER ANALYSIS / PARALLEL COMPUTING / COMPUTATIONAL EXPERIMENT / FUZZY ALGORITHM

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

Рассматривается задача формирования комплексной детали из деталей, обрабатываемых на одной группе ста нков. Предполагается, что для выделения комплексной детали используется кластерный анализ. Для его реал изации вводятся признаки, описывающие детали. Производится сравнение алгоритмов кластеризации. В связи с тем что в реальных условиях в данной задаче объем данных может быть значительным, сравнивалась работа нескольких методов кластеризации в параллельном и обычном режимах в среде Matlab: иер архический алгоритм, алгоритм субтрактивной кластеризации, к-среднего и нечеткой кластеризации. На примере набора из 34 втулок, обрабатываемых на револьверном станке с применением групповой наладки, анализировалось время выполнения в последовательном и параллельном режимах.

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

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

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

USE OF PARALLEL COMPUTING IN CLASTER ANALYSIS TO FORM COMPLEX PARTS

The article deals with the problem to form a complex part from the workpieces machined by the same group of machinetools. It is assumed that cluster analysis is used for distinguishing a complex part. To implement cluster analysis the author introduces the criteria describing parts. A comparison of clustering algorithms is carried out. Due to the fact that in real conditions the amount of data in the problem can be significant, the author compares the work of several clustering methods in parallel and normal modes in Matlab environment: hierarchical algorithm, algorithm of subtractive clustering, k-mean and fuzzy clustering. On the example of the set of 34 bushings machined by a turret lathe with the use of group setting up, the execution time in series and parallel modes is analyzed.

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

1 1800 50.0 -0.116 05E+0 9 -0.11913E+0 9 0.834 96E+08 0.88334E+08

1 1050 50.0 -0.910 82E+0 8 -0.92 8 4 0E+0 8 0.61858E+08 0.61831E+08

1 300 50.0 - 0.70414E+08 - 0.71646E+08 0.41595E+08 0.41563E+08

1 8700 22.5 -0.168 4 8E+0 9 -0.17 218E+0 9 0.13320E+09 0.13324E+09

1 4500 22.5 -0.117 02E+0 9 -0.11941E+0 9 0.84 915E+08 0.84906E+08

1 300 22.5 - 0.657 96E+08 - 0.66908E+08 0.36909E+08 0.36877E+08

1 8700 2.5 - 0.86438E+08 - 0.87 938E+08 0.49886E+08 0.49849E+08

1 4500 2.5 - 0.74679E+08 - 0.7594 6E+08 0.41937E+08 0.41902E+08

1 300 2.5 -0 •62980E+08 -0 •64 018E+0 8 0.3 4 052E+0 8 0.34019E+08

Рис. 2. Пример блока тренировочных данных перцептрона с входными и выходными значениями нейронов

Суммарное время обучения вышеуказанных сетей составляет 48 минут. Обработка данных за восьмичасовую рабочую смену при условии, что регистрация рабочих параметров проводилась с интервалом в 1 секунду, происходит в течение 9 секунд. При экспериментах использована ЭВМ: CPU CoreDuo 2 Ghz, RAM 1GB, OS WindowsXP.

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

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

Библиографический список

1. Нейронные сети: варианты использования // Консалтинговая группа MD URL: http://md-it.ru/articles/html/article19.html (дата обращения: 26.02.12).

2. Нейронные сети // StatSoft URL: http://www.statsoft.ru/home/textbook/modules/stneunet.html (дата обращения: 26.02.12).

3. Математика\Neural Network Toolbox // MATLAB&Tollboxes URL:

http://matlab.exponenta.ru/neuralnetwork/book4/2.php#2_4 (дата обращения: 09.12.11).

4. Прогнозирование на основе аппарата нейронных сетей // StudyPort URL: http://studyport.ru/tehnika/prognozirovanie-na-osnove-apparata-neyronnyih-setey (дата обращения: 08.11.2011).

УДК 004.75

ИСПОЛЬЗОВАНИЕ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ В КЛАСТЕРНОМ АНАЛИЗЕ ДЛЯ ФОРМИРОВАНИЯ КОМПЛЕКСНЫХ ДЕТАЛЕЙ

А

В.Н.Янчуковский1

Иркутский государственный технический университет, 664074, г. Иркутск, ул. Лермонтова, 83.

Рассматривается задача формирования комплексной детали из деталей, обрабатываемых на одной группе станков. Предполагается, что для выделения комплексной детали используется кластерный анализ. Для его реализации вводятся признаки, описывающие детали. Производится сравнение алгоритмов кластеризации. В связи с тем что в реальных условиях в данной задаче объем данных может быть значительным, сравнивалась работа нескольких методов кластеризации в параллельном и обычном режимах в среде МаАаЬ: иерархический алгоритм, алгоритм субтрактивной кластеризации, к-среднего и нечеткой кластеризации. На примере набора из 34 втулок, обрабатываемых на револьверном станке с применением групповой наладки, анализировалось время выполнения в последовательном и параллельном режимах. Ил. 5. Табл. 5. Библиогр. 5 назв.

Ключевые слова: кластерный анализ; параллельные вычисления; вычислительный эксперимент; нечеткий алгоритм.

USE OF PARALLEL COMPUTING IN CLASTER ANALYSIS TO FORM COMPLEX PARTS V.N. Yanchukovsky

Irkutsk State Technical University, 83 Lermontov St., Irkutsk, 664074.

1Янчуковский Владислав Николаевич, аспирант, тел.: 89501397468, e-mail: V.Yanchukovsky@gmail.com Yanchukovsky Vladislav, Postgraduate, tel.: 89501397468, e-mail: V.Yanchukovsky@gmail.com

The article deals with the problem to form a complex part from the workpieces machined by the same group of machinetools. It is assumed that cluster analysis is used for distinguishing a complex part. To implement cluster analysis the author introduces the criteria describing parts. A comparison of clustering algorithms is carried out. Due to the fact that in real conditions the amount of data in the problem can be significant, the author compares the work of several clustering methods in parallel and normal modes in Matlab environment: hierarchical algorithm, algorithm of subtractive clustering, k-mean and fuzzy clustering. On the example of the set of 34 bushings machined by a turret lathe with the use of group setting up, the execution time in series and parallel modes is analyzed. 5 figures. 5 tables. 5 sources.

Key words: cluster analysis; parallel computing; computational experiment; fuzzy algorithm.

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

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

вестным представителем данной группы программных средств является MatLab.

Задача кластерного анализа. Была поставлена задача сформировать комплексную деталь из деталей, обрабатываемых на одной группе станков, а также сравнить алгоритмы кластеризации на конкретном примере из области машиностроения и потенциал алгоритмов для распараллеливания. Для решения задачи кластерного анализа были разбиты на кластеры втулки, обрабатываемые на револьверных станках. На исследование были взяты 34 втулки. Данный пример является единственным в доступной нам литературе. В качестве признаков объектов кластерного анализа использовались: максимальный диаметр, высота, количество внешних диаметров, количество внутренних диаметров, количество конических поверхностей и количество резьб (рис.1). Все эти детали обрабатываются на револьверном станке с применением групповой наладки. Была поставлена задача разбить эту комплексную деталь на ряд кластеров и проанализи-

Рис.1. Чертежи анализируемых деталей

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

Под комплексной деталью понимается реальная или условная (искусственно созданная) деталь, содержащая в своей конструкции все основные элементы (поверхности), характерные для деталей данной группы, и являющаяся её конструктивно-технологическим представителем [1].

Все вычисления производились на ПК следующей конфигурации:

• Процессор: AMD Turion X2 Dual-Core 2,20 Ггц.

. ОЗУ: 3Гб.

• Видео: ATI Mobility Radeon HD 4570 512 Мб.

Данные были загружены в среду MatLab и подвергнуты обработке алгоритмами кластеризации в обычном и распределенном режимах. Распределенный режим был реализован в двух видах:

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

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

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

Были использованы следующие алгоритмы:

1. Иерархический.

2. Субтрактивный.

3. Алгоритм К-среднего (K-means).

4. Алгоритм нечеткой кластеризации (FCM).

Полученные результаты были представлены графически и проанализированы с точки зрения следующих параметров:

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

• «Качество» полученных кластеров.

• Время, затрачиваемое на работу алгоритма (обработку данных).

• Удобство алгоритма для работы в распределенном режиме - субъективный критерий, оценивающий, насколько легко алгоритм распараллеливается, сколько строк кода было внесено в исходный код алгоритма для его распараллеливания.

Для анализа времени, затрачиваемого на работу алгоритма, использовались встроенные команды среды MatLab: tic...toc и утилита mpiprofiler. Команда tic..toc измеряет время, необходимое MatLab на выполнение операций, заключенных внутри. Утилита mpiprofiler измеряет два параметра [3]:

Totaltime - время, потраченное на основную и дочерние функции;

Self-time - время выполнения только основной функции.

Измеряемое ими время неидентично, поскольку у

них разные принципы работы: mpiprofiler измеряет время, когда задействован CPU, команда tic...toc представляет собой обычный таймер. В параллельном режиме за общее время обработки данных принималось среднее время выполнения параллельных процессов [4].

В обычном режиме все команды выполняются последовательно:

1. Загрузка подготовленных данных в среду MatLab.

2. Запуск алгоритма кластеризации.

3. Получение выходных данных.

4. Вывод выходных данных в виде графика.

В параллельном режиме возможен только запуск алгоритмов кластеризации [5]:

1. Загрузка подготовленных данных в среду MatLab в обычном режиме.

2. Запуск параллельного режима - создание параллельного задания pjob

pjob = jm.createParallelJob

3. Задание количества параллельных процессов - workers(в нашем случае - два или четыре параллельных процесса)

set(pjob, 'MaximumNumberOfWorkers', 2).

4. Передача подготовленных данных в параллельный режим

pmode client2lab MyData [1,2] MyData

5. Разделение подготовленных данных на части в соответствии с количеством параллельных процессов (разделение происходит по алгоритму, заложенному в Matlab по умолчанию).

6. Запуск алгоритма кластеризации

set(pjob, 'FileDependencies', {'clust.m'}).

7. Обработка данных в параллельных процессах.

8. obj = createTask(pjob, 'clust', 1,{F,a,b}).

9. Завершение алгоритма кластеризации

submit(pjob); waitForState(pjob).

10. Сложение выходных данных из параллельных процессов (сложение происходит по алгоритму, заложенному в Matlab по умолчанию).

11. Приостановка параллельного режима.

12. Передача выходных данных в обычный режим

results = getAllOutputArguments(pjob)

13. Вывод выходных данных в виде графика.

Иерархический алгоритм. Среди алгоритмов

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

О 0.2 0.4 0.6 0.8 1

Silhouette Value

Рис. 2. Силуэты для кластеров, полученные по иерархическому методу

чаще всего пользуются двумя расстояниями: одиночной связью или полной связью. Вычислительная сложность данного алгоритма O(n ).

В нашем случае были использованы: нисходящий алгоритм, евклидово расстояние для определения «похожести» объектов и взвешенное попарное среднее для вычисления расстояния между кластерами. Данные о времени выполнения алгоритма сведены в табл. 1.

Таблица 1

Время выполнения иерархического алгоритма

Полученные кластеры (рис.2) оказались абсолютно идентичны как в обычном, так и в распределенных режимах. Алгоритм разбил данные на 6 «хороших», устойчивых кластеров. График силуэтов на рис. 2 показывает, насколько хороши получившиеся кластеры, схожи ли элементы одного кластера. Если элементы одного кластера схожи между собой, то кластер «хороший», если нет - то «плохой». Значения силуэта принимают значения от -1 до 1. Если значение положительно и близко к 1, то элемент очень похож на остальные элементы своего кластера. Можно заметить значительное уменьшение времени выполнения алгоритма при распараллеливании. Однако при использовании двух процессов время оказалось меньше, чем при четырех, за исключением времени Эв^те (время выполнения алгоритма, исключая дочерние функции). Это говорит о том, что при четырех процессах затрачивается больше времени на переносы данных между процессами.

К плюсам метода можно отнести достаточно быстрое его выполнение, а также то, что количество

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

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

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

Данный алгоритм, который является обобщением метода кластеризации Р.Ягера, основан на выполнении следующих действий:

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

1. Выбрать точку данных с максимальным потенциалом для представления центра первого кластера.

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

Эти две процедуры повторяются до тех пор, пока все точки данных не окажутся внутри окрестностей радиуса radii искомых центров кластеров.

Таблица 2

Результаты работы алгоритма субтрактивной _кластеризации_

Режим tic...toc, с Mpi profiler (Total Time), с Mpiprofiler (Self Time), с

Обычный 0,063 0,045 0,045

2 процесса 0,035 0,032 0,032

4 процесса 0,06 0,095 0,095

Режим tic. toc, с Mpiprofiler (Total Time), с Mpiprofiler (Self Time), с

Обычный 0,58 0,139 0,128

2 процесса 0,012 0,045 0,034

4 процесса 0,018 0,081 0,013

■О.В -0.6 -0,4 -0 2 О 0.2 0,4 0,6 0.8 1

Silhcuelle Value

Рис. 3. Силуэты для кластеров, полученные по методу субтрактивной кластеризации

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

На рис.3 видно, что получилось семь кластеров, два из них «плохие». Это говорит о не очень высокой точности алгоритма.

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

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

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

0(пк1), где к - число кластеров, I - число итераций (табл. 3).

Таблица 3

_Время работы алгоритма К-средних_

Режим Tic...toc, с Mpi profiler (Total Time), с Mpiprofiler (Self Time), с

Обычный 0,58 0,336 0,208

2 процесса 0,27 0,23 0,052

4 процесса 0,18 0,172 0,027

-02 а 02 04 06 08 1

Silhouette Value

Рис. 4. Силуэты для кластеров, полученные по методу К-средних

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

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

остальные рассматриваемые алгоритмы, а также его точность.

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

Алгоритм РОМ. Алгоритм нечеткой кластеризации называют FCM-алгоритмом (FuzzyClassifierMeans, FuzzyC-Means). FCM-алгоритм кластеризации предполагает, что объекты принадлежат всем кластерам с определенной степенью принадлежности. Степень принадлежности определяется расстоянием от объекта до соответствующих кластерных центров. Данный алгоритм итерационно вычисляет центры кластеров и новые степени принадлежности объектов. Результат разбиения представляется степенью принадлежности точек к различным кластерам (табл. 4).

Вычислительная сложность данного алгоритма 0(пк1), где к - число кластеров, I - число итераций.

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

Таблица 4

Время выполнения алгоритма РОМ_

Режим йс...йэс, с Mpiprofiler (^а! Time), с Mpiprofiler (БеК Тте), с

Обычный 0,72 0,71 0,023

2 процесса 0,028 0,59 0,033

4 процесса 0,06 0,088 0,052

Данный алгоритм дает более высокую точность по сравнению с методом К-средних, однако он более вычислительно сложен и самый сложно-распараллеливаемый.

К плюсам алгоритма можно отнести высокую точность при представлении кластеров.

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

Таким образом, в результате применения различных алгоритмов и их распараллеливания были получены кластеры, которые представлены в табл.5 (по своей сути представляющие комплексные детали).

Заключение. Основываясь на проведенном сравнении, можно сделать вывод, что из всей группы проанализированных алгоритмов наибольшую точность показал иерархический алгоритм, наименьшую - суб-трактивный. Алгоритмы K-means и FCM держатся в

Таблица 5

Полученные кластеры

Алгоритм Обычный режим Параллельный режим

Кол-во кластеров «Хороших» «Плохих», или значений, не вошедших ни в один кластер Кол-во кластеров «Хороших» «Плохих», или значений, не вошедших ни в один кластер

Иерархический 6 6 0 6 6 0

К-средних 6 5 1 6 5 1

Субтрактивная кластеризация 7 5 2 7 5 2

FCM 5 4 1 5 4 1

О 0.2 04 0.6 08 I

Рис. 5. Силуэты для кластеров, полученные по методу FCM

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

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

Библиографический список

1. Митрофанов С.П. Научная организация машиностроительного производства. Л.: Изд-во Ленинград, 1976.

2. Андрианов С.Н., Дегтярев А.Б., Параллельные и распределенные вычисления. СПб.: «СОЛО», 2007. Ч.1. 60 с.

3. Кетков Ю.Л., Кетков А.Ю., Шульц М.М. МАТ1.АВ7: программирование, численные методы. СПб.: БХВ-Петербург, 2005. 752 с.

4. Оленев Н.Н., Печенкин Р.В., Чернецов А.М. Параллельное программирование в MatLab и его приложения. М.: ВЦРан, 2007. 120 с.

5. Янчуковский В.Н. Использование параллельных вычислений в задаче классификации в среде Matlab // Винеров-ские чтения: труды IV Всероссийской конференции. Ч. III. Иркутск: Изд-во ИрГТУ, 2011. С.49.

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