Перевести страницу на:  
Please select your language to translate the article


You can just close the window to don't translate
Библиотека
ваш профиль

Вернуться к содержанию

Кибернетика и программирование
Правильная ссылка на статью:

Исследование классификаций кластерных систем

Сухих Андрей Владимирович

аспирант, кафедра Информационно-вычислительных систем, Поволжский Государственный Технологический Университет

424000, Россия, республика Марий Эл, г. Йошкар-Ола, пл.Ленина, 3

Sukhikh Andrei Vladimirovich

graduate student, Department of Information and Computer Systems, Volga State University of Technology

424000, Russia, respublika Marii El, g. Ioshkar-Ola, pl.Lenina, 3

syhih.andrew@gmail.com
Васяева Наталья Семеновна

кандидат технических наук

доцент, кафедра Информационно-Вычислительных Систем, Поволжский Государственный Технологический Университет

424000, Россия, республика Марий Эл, г. Йошкар-Ола, пл. Ленина, 3

Vasyaeva Natalya Semenovna

PhD in Technical Science

Associate Professor, Department of Information Systems, Volga State University of Technology

424000, Russia, respublika Marii El, g. Ioshkar-Ola, pl. Lenina, 3

vasjaeva@mail.ru

DOI:

10.7256/2306-4196.2016.2.18074

Дата направления статьи в редакцию:

19-02-2016


Дата публикации:

03-03-2016


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


Ключевые слова:

кластерные системы, классификация кластеров, критерии классификации, систематизация кластерных систем, таксономия Флинна, классификация Р.Хокни, специализированные коммуникации, коммуникации общего назначения, коммутация PCI Express, стандарт PCI Express

Abstract: The article addresses the issue of classification of modern cluster systems (clusters). The main objective of the study is to systematize the existing classifications of clusters and to determine a place for PCI Express standard based clusters in it. The goal is achieved by summarizing the existing classifications of clusters, allocation of important classification criteria among them and the introduction of new criteria for the classification of switching cluster systems. Besides, the authors give a detailed analysis of the situation in the classification of clusters of computer systems in general. To solve this problem the following methods were used: an analytical review of the known approaches to the classification of cluster systems and formal-logical method of classification. As the result of the research of known classifications of clusters and generalization of all of the above criteria, highlighting the especially significant and taking into account the new criteria, the authors suggest a general scheme reflecting both the position of all the clusters of computer systems in general and detailed classification within the  clustered systems.


Keywords:

cluster systems, cluster classification, classification criteria, systematization of cluster systems, Flynn's taxonomy, R.Hokni classification, specialized communication, general purpose communication, PCI Express commutation, PCI Express standard

Введение

Кластерные системы как одна из разновидностей суперкомпьютеров получили свое становление и развитие в 1989 году с выходом однокристального микропроцессора Intel i860 [1]. С этого времени развитие суперкомпьютерной отрасли идет по двум основным направлениям:

  • Магистральное направление предполагает использование микросхем массового выпуска для создания специализированных микропроцессорных систем. К этим системам относятся SMP-системы (Symmetric Multi Processing) – суперкомпьютеры с симметрично адресуемой общей памятью, MPP-системы (Massively Parallel Processing) – массивно-параллельная архитектура, а также NUMA-системы и некоторые другие.
  • Кластерное направление логически во многом похоже на MPP-системы, разница заключается лишь в том, что для MPP-систем использовались специализированные и дорогие вычислители, а в кластеры по локальной сети объединялись обычные массово производимые персональные ЭВМ.

Кластерное направление, хоть и развивалось параллельно с магистральным, но до середины 90-х годов не могло составить ему конкуренцию по производительности. Во второй половине 90-х годов произошел прорыв в области аппаратуры массового выпуска, связанный с появлением в персональных компьютерах шины PCI [2] и переходом на дешевую и быструю коммутируемую сеть Fast Ethernet. Таким образом, кластеры рабочих станций по производительности сравнялись с существующими на тот момент MPP-системами, но имели намного меньшую цену реализации. Вследствие этого MPP-системы из специализированных вычислителей практически исчезли и перестали развиваться, отдав эту нишу кластерным системам [3]. В настоящее время кластерные системы повсеместно используются в научно-исследовательских, военных и производственных целях и широко представлены в списке Top500 суперкомпьютеров. Наряду с зарубежными кластерами (например, широко известный суперкомпьютер Titan национальной лаборатории Оук-Ридж в США), в этом списке присутствуют и отечественные, например кластер научно-исследовательского вычислительного центра МГУ, кластер Санкт-Петербургского государственного политехнического университета и другие [4].

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

В литературе встречаются различные классификации кластеров:

  1. По применимости в областях экономики [5] (промышленные, инженерные, для нефте-газодобывающей промышленности и т.д.) – такая классификация не отражает архитектурных особенностей систем и несет только прикладной характер.
  2. По способу обеспечения отказоустойчивости [6] – классификация охватывает слишком узкую и специализированную область и определяет наличие резервирования оборудования и линий связи.
  3. Достаточно полная классификация кластерных систем была дана Карпенко А.П. [7], но и она может быть дополнена некоторыми другими критериями.

Одной из важнейших компонент кластера является его коммутационная система, разновидностей которых в настоящее время множество: PCI Express, InfiniBand, Fibre Channel, семейство Ethernet, Myrinet, SCI и другие. Ни в одной из классификаций нет четких критериев по разделению кластеров по типу коммутационной системы.

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

1. Место кластеров в классификации вычислительных систем

Для определения положения кластеров внутри общей классификации архитектур вычислительных систем можно использовать таксономию Флинна [8, 9] как одну из самых первых (предложена в 1966 году) и широко известную и применяемую на начальных этапах классификации вычислительных систем.

Флинн М. выделяет четыре класса архитектур, которые базируются на понятии потока и способов работы с ним: ОКОД (англ. «SISD» – одиночный поток команд одиночный поток данных), ОКМД (англ. «SIMD» - одиночных поток команд множественный поток данных), МКОД (англ. «MISD» - множественный поток команд одиночный поток данных), МКМД (англ. «MIMD» - множественный поток команд множественный поток данных). Кластерные системы относятся к классу MIMD-систем, поскольку этот класс предполагает, что в вычислительной системе есть несколько устройств обработки команд, объединенных в единый комплекс и работающих каждое со своим потоком команд и данных (см. рис. 1) [10], что полностью описывает распределенную архитектуру кластера.1

Рис. 1. Класс MIMD по классификации М. Флинна, где УУ – Устройство Управления, ПР – Процессорный элемент, ПД – память данных

Класс MIMD-систем в дальнейшем был конкретизирован Р. Хокни, который предложил свою классификацию (см. рис. 2) [11, 12].

2

Рис. 2. Расширенная классификация MIMD-систем по Р. Хокни

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

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

3

Рис. 3. Положение кластеров в общей классификации вычислительных систем

2. Основные признаки классификации кластерных систем

В литературе выделяются следующие признаки (критерии) кластерных систем [13, 5, 6, 7]: по типу вычислительных устройств (ВУ), по типу используемых ОЗУ, по типу операционных систем (ОС), по стандартности комплектующих, по функциональной направленности, GRID-кластеры, по отраслям применения, по способу обеспечения отказоустойчивости.

2.1 Классификация по типу ВУ

По типу ВУ кластерные системы разделяются на гомогенные или гетерогенные, полнофункциональные или не полнофункциональные [13, 14].

Как и всякие MIMD-системы, вычислительные кластеры разделяются на однородные кластерные системы и гетерогенные кластерные системы.

Гомогенный кластер – кластер, в котором все ВУ имеют одинаковую конфигурацию, следовательно, производительность вычислителей в ВУ одинаковые.

Гетерогенный кластер – кластер, в котором ВУ имеют разную конфигурацию и, соответственно, производительность.

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

- возрастает сложность в распределении задач между процессорами из-за различий в производительности;

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

- из-за различий в представлении данных может потребоваться преобразование их форматов при передаче между узлами.

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

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

2.2. Классификация по типу используемых ОЗУ: с распределенной общей памятью (Distributed shared memory, DSM) и с распределенной памятью (Distributed memory, DM) [13].

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

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

Если распределенная общая память отсутствует и программы взаимодействуют посредством передачи сообщений, то кластер называется DM-кластером. В варианте с DM-памятью каждому из процессоров выделяется собственная память. Процессоры объединяются в сеть и могут при необходимости обмениваться данными, хранящимися в их памяти, передавая друг другу так называемые сообщения. Такой вид вычислительных систем еще называют слабо связанными (loosely coupled systems) [14].

2.3. Классификация по типу используемой ОС: Unix-кластеры (включая Linux) и Windows-кластеры [13].

Если обратиться к списку Top500, то подавляющее большинство суперкомпьютеров (более 95%) работают под управлением операционных систем семейства Linux [15]. Выбор операционной системы с открытым исходным кодом позволяет разработчикам тонко ее настроить: оптимизировать ядро под задачи и процессы, на решение которых направлен кластер, интегрировать с прикладным программным обеспечением на базовом программном уровне. Именно поэтому, Unix- и Linux-подобные операционные системы завоевали большую популярность. Кроме этого, часть специализированного программного обеспечения для вычислительных кластеров работает только на UNIX-платформах. Windows-кластеры практически полностью вытеснены из списка Top500, они используются в вычислительных системах более низкого уровня.

2.4. Классификация по стандартности комплектующих: стандартные или эксклюзивные [7].

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

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

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

2.5. Классификация по функциональной направленности: высокоскоростные (High Performance, HP-кластер) и высокой готовности (High Availability, HA-кластер) [7].

Высокоскоростные кластеры. Производительность узлов и скорость связи между ними определяют быстродействие High Performance кластерной системы. Причем влияние скоростных параметров как узлов, так и связей между ними на общую производительность системы зависит от характера выполняемых кластером задач. Требуется соблюдать баланс между скоростью межпроцессорного обмена и их вычислительной мощностью. Чем меньше взаимодействуют части параллельной задачи между собою, тем большие требования предъявляются к производительности вычислительных узлов, и, соответственно, чем больше взаимодействие, тем выше должна быть скорость межпроцессорного обмена. Также характер выполняемых задач накладывает определенные требования и на их параллельное программирование [6].

Кластеры высокой готовности (высокой надежности). Кластеры High Availability предоставляют высокую отказоустойчивость при достаточно низкой стоимости. Вычислительная система будет обладать высокими показателями готовности, когда она будет удовлетворять следующим условиям:

- вычислительные узлы и другие компоненты такой системы были максимально надежными;

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

- система должна поддерживать технологию Hot Swap, то есть возможность «горячей» замены.

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

2.6 Выделяется отдельный класс вычислительных кластеров - вычислительные сети GRID. GRID-вычислители (от англ. grid - решетка) представляют собой совокупность разного вида вычислителей: целых кластеров, отдельных ЭВМ (как многопроцессорных, так и однопроцессорных), которые могут иметь любую территориальную удаленность [7].

К основным свойствам GRID можно отнести [17]:

- координированное использования общих ресурсов;

- отсутствие централизованного управления этими ресурсами;

- использование стандартных, открытых, универсальных протоколов и интерфейсов;

- высокое качество обслуживания (низкая латентность, надежность, аппаратная избыточность и т.д.).

3. Систематизация известных подходов к классификации КС

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

На основании вышеизложенного предлагается расширить существующие классификации кластеров дополнительным признаком – «по типу коммутационных систем»

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

Производительность кластера, как и всякой системы с распределенной памятью, сильно зависит от производительности коммуникационной среды. Влияние производительности коммуникационной среды на общую производительность кластерной системы зависит от характера выполняемой задачи. Если задача требует частого обмена данными между подзадачами, которые решаются на разных узлах вычислительного кластера, то быстродействию коммуникационной среды следует уделить максимум внимания и использовать специализированные (высокопроизводительные) протоколы обмена данными, такие как InfiniBand, PCI Express, Fibre Channel и другие.

Соответственно, чем меньше взаимодействуют части задачи между собой, тем меньше требований предъявляется к быстродействию коммуникационной среды. В этом случае для межпроцессорного обмена могут быть использованы протоколы общего назначения, такие как Fast Ethernet, Gigabit Ethernet или другие.

Если при построении вычислительных кластеров используют достаточно дешевые коммуникационные среды, то такие кластеры обеспечивают производительность на один-два порядка более низкую, чем производительность коммуникационных сред суперкомпьютеров [7].

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

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

.jpg

Рис. 4. Обобщенная многокритериальная классификация кластерных систем

Библиография
1. Лацис, А.О. Как построить и использовать суперкомпьютер / А.О. Лацис-М.:Бестселлер, 2003.-240 с
2. С. Яценко. Шина PCI-опыт разработки встраиваемых устройств / Chip News, № 3B4, 1998, с. 17-22.
3. R. Buyya High Performance Cluster Computing / R. Buyya – Prentice Hall PTR. NJ, USA, 1999, 128 р.
4. Васильков А. Новый рейтинг ТОП500 суперкомпьютеров [Электронный ресурс] http://www.computerra.ru/110512/sc-2014-top500_nov/
5. База знаний электронного журнала PC Mag [Электронный ресурс] http://ru.pcmag.com/upgrade-42005/13443/issue/klasternye-sistemy?p=3
6. Савяк В. Эффективные кластерные решения [Электронный ресурс] http://www.ixbt.com/cpu/clustering.shtml
7. Карпенко А.П. Многопроцессорные системы (MIMD-системы). Вычислительные кластеры. МГТУ им. Н.Э.Баумана [Электронный ресурс] http://bigor.bmstu.ru/?cnt/?doc=Parallel/ch010104.mod/?cou=Parallel/base.cou
8. Flynn M. Very high-speed computing system // M. Flynn, Proc. IEEE. 1966. N 54. P.1901-1909.
9. Flynn M. Some Computer Organisations and Their Effectiveness // M. Flynn, IEEE Trans. Computers. 1972. V.21. N 9. P.948-960
10. Воеводин В.В. Параллельные вычисления. / Воеводин В.В., Воеводин Вл. В – Спб.: БХВ-Петербург, 2002. — 608 с.
11. Hockney R. Parallel Computers: Architecture and Performance // Proc. of Int. Conf. Parallel Computing'85. 1986. P.33-69.
12. Hockney R. Classification and Evaluation of Parallel Computer Systems // R. Hockney, Lecture Notes in Computer Science. 1987. N 295. P.13-25.
13. Во Минь Тунг. Исследование кластерных вычислительных систем и разработка моделей назначения фрагментов параллельных программ: 05.13.15-Вычислительные машины, комплексы и компьютерные сети : диссертация кандидата технических наук / Во Минь Тунг, Моск. энерг. ин-т (МЭИ ТУ) . – М., 2010 . – 218 с.
14. Орлов С. А. Организация ЭВМ и систем / Орлов С.А. – Издательский дом "Питер", 2011 – 686с.
15. Официальный сайт проекта «TOP500» [Электронный ресурс] http://www.top500.org/lists/2015/11/
16. База знаний компании Alterozoom [Электронный ресурс] https://alterozoom.com/documents/8289.html
17. Ian Foster “WHAT IS THE GRID? A THREE POINT CHECKLIST” / Ian Foster – Department of Computer Science, University of Chicago, Chicago [Электронный ресурс] http://www.mcs.anl.gov/~itf/Articles/WhatIsTheGrid.pd
18. Бородин А.В. Технико-экономическое обоснование варианта резервирования сетевой компоненты отказоустойчивой масштабируемой вычислительной системы специального назначения // Кибернетика и программирование. - 2015. - 6. - C. 55 - 70. DOI: 10.7256/2306-4196.2015.6.17523. URL: http://www.e-notabene.ru/kp/article_17523.html
References
1. Latsis, A.O. Kak postroit' i ispol'zovat' superkomp'yuter / A.O. Latsis-M.:Bestseller, 2003.-240 s
2. S. Yatsenko. Shina PCI-opyt razrabotki vstraivaemykh ustroistv / Chip News, № 3B4, 1998, s. 17-22.
3. R. Buyya High Performance Cluster Computing / R. Buyya – Prentice Hall PTR. NJ, USA, 1999, 128 r.
4. Vasil'kov A. Novyi reiting TOP500 superkomp'yuterov [Elektronnyi resurs] http://www.computerra.ru/110512/sc-2014-top500_nov/
5. Baza znanii elektronnogo zhurnala PC Mag [Elektronnyi resurs] http://ru.pcmag.com/upgrade-42005/13443/issue/klasternye-sistemy?p=3
6. Savyak V. Effektivnye klasternye resheniya [Elektronnyi resurs] http://www.ixbt.com/cpu/clustering.shtml
7. Karpenko A.P. Mnogoprotsessornye sistemy (MIMD-sistemy). Vychislitel'nye klastery. MGTU im. N.E.Baumana [Elektronnyi resurs] http://bigor.bmstu.ru/?cnt/?doc=Parallel/ch010104.mod/?cou=Parallel/base.cou
8. Flynn M. Very high-speed computing system // M. Flynn, Proc. IEEE. 1966. N 54. P.1901-1909.
9. Flynn M. Some Computer Organisations and Their Effectiveness // M. Flynn, IEEE Trans. Computers. 1972. V.21. N 9. P.948-960
10. Voevodin V.V. Parallel'nye vychisleniya. / Voevodin V.V., Voevodin Vl. V – Spb.: BKhV-Peterburg, 2002. — 608 s.
11. Hockney R. Parallel Computers: Architecture and Performance // Proc. of Int. Conf. Parallel Computing'85. 1986. P.33-69.
12. Hockney R. Classification and Evaluation of Parallel Computer Systems // R. Hockney, Lecture Notes in Computer Science. 1987. N 295. P.13-25.
13. Vo Min' Tung. Issledovanie klasternykh vychislitel'nykh sistem i razrabotka modelei naznacheniya fragmentov parallel'nykh programm: 05.13.15-Vychislitel'nye mashiny, kompleksy i komp'yuternye seti : dissertatsiya kandidata tekhnicheskikh nauk / Vo Min' Tung, Mosk. energ. in-t (MEI TU) . – M., 2010 . – 218 s.
14. Orlov S. A. Organizatsiya EVM i sistem / Orlov S.A. – Izdatel'skii dom "Piter", 2011 – 686s.
15. Ofitsial'nyi sait proekta «TOP500» [Elektronnyi resurs] http://www.top500.org/lists/2015/11/
16. Baza znanii kompanii Alterozoom [Elektronnyi resurs] https://alterozoom.com/documents/8289.html
17. Ian Foster “WHAT IS THE GRID? A THREE POINT CHECKLIST” / Ian Foster – Department of Computer Science, University of Chicago, Chicago [Elektronnyi resurs] http://www.mcs.anl.gov/~itf/Articles/WhatIsTheGrid.pd
18. Borodin A.V. Tekhniko-ekonomicheskoe obosnovanie varianta rezervirovaniya setevoi komponenty otkazoustoichivoi masshtabiruemoi vychislitel'noi sistemy spetsial'nogo naznacheniya // Kibernetika i programmirovanie. - 2015. - 6. - C. 55 - 70. DOI: 10.7256/2306-4196.2015.6.17523. URL: http://www.e-notabene.ru/kp/article_17523.html