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

УДК 004.052.32 DOI 10.18522/2311-3103-2016-11-113120

К.Е. Крамаренко, О.В. Молдованова

ПРИМЕНЕНИЕ ГЛУБОКОГО ОБУЧЕНИЯ ДЛЯ РЕШЕНИЯ ЗАДАЧ САМОДИАГНОСТИКИ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛИТЕЛЬНЫХ

СИСТЕМ*

Статья посвящена решению задачи самодиагностики распределенных вычислительных систем, которые состоят из множества, связанных между собой каналами связи, элементарных машин (узлов). С ростом числа узлов в системе возрастает вероятность возникновения отказов. Под отказом понимается событие, при котором элементарная машина теряет способность выполнять заданные функции по переработке информации. Отказ одного узла, участвующего в вычислительном процессе, может привести к некорректному результату вычислений и иметь разрушительные последствия для всей распределенной вычислительной системы. Поэтому актуальной является задача разработки алгоритмов самодиагностики, цель которых заключается в определении исправных и неисправных узлов системы по заданному синдрому распределенной вычислительной системы. Эту задачу можно свести к задаче классификации, эффективно решаемой алгоритмами глубокого обучения. В статье приведены постановка и ограничения задачи дешифрации синдрома распределенной вычислительной системы, описание разработанного алгоритма дешифрации синдрома распределенной вычислительной системы на основе сверточной нейронной сети и алгоритма генерации обучающих выборок. Программная реализация разработанных алгоритмов была выполнена c использованием пакета DeepLearnToolBox интерактивной среды Matlab. Проведены эксперименты на тестовых обучающих выборках с различным числом узлов в распределенной вычислительной системе и различным числом неисправных узлов. Экспериментально подобраны гиперпараметры сверточной нейронной сети: длина обучающей выборки, количество эпох обучения, шаг ядра свертки, количество и размеры ядер в слое свертки, количество слоев сверточной нейронной сети. Эффективность алгоритма оценивалась по зависимости количества точно диагностированных узлов от общего количества неисправных узлов в распределенной вычислительной системе. Проведенные эксперименты показали, что данный алгоритм стоит применять в распределенных вычислительных сжтемах с числом неисправных узлов, не превышающем 30 % от общего числа узлов. Несмотря на небольшую длину обучающей выборки, сеть сохраняет хорошую обобщающую способность.

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

K.E. Kramarenko, O.V. Moldovanova

APPLYING DEEP LEARNING FOR SOLVING THE TASKS OF SELF-DIAGNOSIS OF DISTRIBUTED COMPUTER SYSTEMS

The article is devoted to solving the problem of self-distributed computer systems, which consist of a plurality of elementary machines (nodes), interconnected by channels of communication. With increasing number of nodes in the system the probability offaults increases. Fault is an event when the elementary machine loses its ability to perform specified functions of information processing. Fault of one node involved in the computation process can lead to incorrect result of calculations and have devastating consequences for the entire distributed computer system. Therefore, the urgent problem is the development of self-diagnostic algorithms, the aim of which is to identify the fault and fault-free system nodes using the given syndrome of the distributed computer system. This problem can be reduced to the problem of classification which is effectively solved by the deep learning algorithms. The paper presents the statement and limitation of the problem of

*

Работа выполнена при поддержке Российского фонда фундаментальных исследований (гранты 16-07-00712-а, 16-07-00992-а, 15-07-00048-а).

decoding the distributed computer system syndrome; the description of the developed algorithm for decoding the syndrome of distributed computer systems on the basis of the convolutional neural network and the algorithm for training samples generation. Software implementation of the developed algorithms was performed using DeepLearnToolBox package in Matlab interactive environment. Experiments on test training samples with different numbers of nodes in a distributed computer system and different number offaulty nodes are carried out. The following con-volutional neural network hyperparameters are experimentally selected: length of the training sample, number of training epochs, convolution kernel step, number and size of the convolution kernels in the layer, number of layers in convolutional neural network. The algorithm efficacy was evaluated by dependency of quantity of the accurately diagnosed nodes from the total number of fault nodes in the distributed computer system. Experiments have shown that the algorithm should be used in distributed computer systems with the number of fault nodes not more than 30 % of their total number. Despite the short length of the training samples, the network maintains a good generalizing ability.

Self-diagnosis; distributed computer systems; artificial neural networks; deep learning; fault-tolerance; convolutional neural networks.

Введение. Для решения трудоемких задач используют распределенные вычислительные системы (РВС). Для решения трудоемких задач используют распределенные вычислительные системы (РВС). Такие системы состоят из множества, связанных между собой каналами связи, элементарных машин (ЭМ). С ростом числа ЭМ в системе возрастает вероятность возникновения отказов. Под отказом понимается событие, при котором ЭМ теряет способность выполнять заданные функции по переработке информации. Отказ одной элементарной машины, участвующей в вычислительном процессе, может привести к некорректному результату вычислений и иметь разрушительные последствия для всей распределенной вычислительной системы. Поэтому актуальной является задача разработки алгоритмов самодиагностики, обеспечивающих отказоустойчивое функционирование РВС. Учитывая встроенный параллелизм и программируемость структуры, в пределах распределенной ВС можно организовывать топологически различные схемы из ЭМ, которые обеспечат полноту контроля работоспособности всей системы и диагностики неисправностей [1]. В этом случае система представляется графом, вершинам которого соответствуют ЭМ системы. Каждый тест формирует дугу графа, направленную от тестирующего к тестируемому. Результату теста соответствует 0 или 1, в зависимости от того, является ли тестируемая элементарная машина исправной или неисправной. Это значение используется как вес соответствующей дуги в диагностическом графе. Предполагается, что либо одна из ЭМ, либо обе могут быть неисправными. Неисправная тестирующая элементарная машина может сгенерировать любой тестовый результат, и его интерпретация тоже может быть различной. Набор всех тестовых результатов, называемый синдромом, дешифрируется для идентификации исправных и неисправных ЭМ.

Для интерпретации результатов тестирования были предложены различные диагностические модели [2-6], позволяющие идентифицировать исправные и неисправные элементарные машины. К ним относятся модели, основанные на тестировании ЭМ друг друга, такие как: модель Препараты-Метца-Чиена [2] (Preparata-Metze-Chien) и модель Барси-Грандони-Маестрини [3] (Barsi-Grandoni-Maestrim). Диагностическая модель, описанная в [4-6], называется моделью сравнения и предполагает, что парам ЭМ назначаются некоторые тесты, результаты выполнения которых затем сравниваются.

В настоящее время при решении задачи самодиагностики распределённых вычислительных систем используются алгоритмы машинного обучения [7-9]. Главным недостатком существующих решений является использование в дополнение к основным алгоритмам эвристик, позволяющих улучшить результат самодиагностики.

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

Постановка задачи. Рассматривается распределенная вычислительная система, состоящая из N ЭМ, соединённых друг с другом каналами связи. Каждая элементарная машина может находиться в исправном или неисправном состоянии. Паре ЭМ назначается на выполнение задача. Сравнение полученных результатов её решения даёт информацию о состоянии машин. Если результаты совпадают, обе ЭМ исправны, иначе одна или обе машины являются неисправными. Множество всех результатов сравнения называется синдромом [6].

Модель сравнения, предложенная в [4, 5], предполагает наличие центрального обозревателя (высоконадёжной ЭМ), который назначает задачи из множества Т = (Ть Т2, ..., Тк, ..., Тм} парам элементарных машин, затем собирает результаты выполнения этих задач и производит диагностику системы.

Диагностическая модель сравнения описывается двумя ненаправленными графами: графом связей и графом тестов или сравнений [8]. Граф связей Gl = (V, Е) представляет топологию вычислительной системы, где V - множество элементарных машин, VI = N Е - множество рёбер. Каждое ребро е^ = (уъ у| представляет собой канал связи между парой (V!, У|) машин ВС. Граф сравнений G2 = (V, С) показывает, какие пары ЭМ тестировались. Как и в случае с графом связей, V - множество машин, VI = N а С = {с^} - множество рёбер, соединяющих пары ЭМ (у1, у|), выполняющих одну и ту же задачу Тк е Т. Обозначим множество машин, с которым сравнивается узел v1, как Г1 = {у| С| е С}. Сравнение узлов v1 и V даёт 0, если их результаты выполнения задачи Тк совпали; и 1 - в противном случае. Для двух исправных ЭМ результат сравнения всегда равен 0. Если только одна из машин является неисправной, результат сравнения всегда равен 1. А для двух неисправных ЭМ этот результат может принимать значение как 0, так и 1. Этот набор результатов тестов для одной машины представляет собой вектор Sу, размер которого равен N. В рамках всей системы речь идет о синдроме-матрице S размерности N х N. Этот синдром собирается на центральном обозревателе и требует дешифрации, так как разные ЭМ могли предоставить противоречивые данные о состоянии одной и той же машины. В данной работе для дешифрации синдрома используется сверточная нейронная сеть.

Для проведения корректной самодиагностики распределённой ВС введено ограничение на максимальное количество t неисправных ЭМ, называемое степенью диагностируемости системы [2]. В [6] было показано, что для системы с N элементарными машинами, сравниваемыми попарно, t = N - 2.

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

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

ванных карт признаков. При этом считается, что информация о факте наличия искомого признака важнее точного знания его координат, поэтому из нескольких соседних нейронов карты признаков выбирается максимальный и принимается за один нейрон карты признаков уменьшенной размерности. Данная операция ускоряет дальнейшие вычисления, а также позволяет сети становиться более инвариантной к масштабу входного образца. Обучать сеть можно алгоритмом обратного распространения ошибки или его модификациями [11-20].

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

♦ на вход нейронной сети подается синдром-матрица S размером N х N, где N - количество ЭМ в системе;выходной слой сети состоит из N нейронов (вектор, в котором индекс соответствует номеру узла, а значение - состоянию узла);

♦ на выходе получаем результат дешифрации синдрома в виде вектора длиной N, в котором индекс соответствует номеру узла, а значение - состоянию узла;

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

Сеть обучается на сгенерированных обучающих выборках. Ниже приведен алгоритм генерации выборок:

1. Генерируем псевдослучайный диагностический граф со следующими ограничениями: топология соответствует используемым на практике топологиям вычислительных систем, Генерируем случайное число в диапазоне [1, t], где t - число неисправных узлов. Также выбираем случайным образом номера неисправных узлов.

2. Генерируем псевдослучайное число в диапазоне [1, t], где t - степень ди-агностируемости системы. Затем псевдослучайным образом выбираем номера неисправных узлов ВС. Добавляем в выборку синдром при его отсутствии в выборке.

3. Строим синдром системы на основе сгенерированных данных на предыдущих двух шагах.

4. Добавляем в выборку синдром при его отсутствии в выборке.

5. Повторяем шаги 2-4, пока не получим выборку необходимой длины.

Эксперименты. Программная реализация разработанного алгоритма была

выполнена программа с помощью пакета DeepLearnToolBox интерактивной среды MATLAB (версия R2014b). Отладка и тестирование алгоритма проводилась на следующих персональных компьютерах:

1) Intel Core i5, 3.20 GHz, RAM 8 GB DDR3;

2) Intel Core i7, 2.0 GHz, RAM 8 GB DDR3.

Сеть обучалась на сгенерированных обучающих выборках:

♦ для различного числа ЭМ в вычислительной системе (50, 100, 200);

♦ для различных диагностических графо в(по 5 графов на каждый размер системы);

♦ а также с различным количеством неисправных ЭМ в системе: 10 %, 30 %, 50 % и 70 %.

♦ 70 % от выборки использовались для обучения и 30 % для тестирования.

Результаты. Для определения эффективности разработанного алгоритма

проведены исследования зависимости точности диагностирования узлов от количества неисправных узлов в РВС для разного набора обучающих выборок.

Результаты исследований, приведенные на рис. 2-4, представляют собой средние значения.

Гиперпараметры серточной нейронной сети подбирались экспериментально. Их значения для разных РВС приведены в табл. 1.

Таблица 1

Гиперпараметры серточной нейроной сети

Размер распределенной вычислительной системы,

Наименование параметра количество узлов

50 100 200

Длина обучающей выборки 500 1000 1500

Количество слоев 5 7 9

Количество ядер в слоях 2 2 2

свертки

Шаг ядра в слое свертки 1 1 1

Количество эпох 200 400 600

Рис. 2. Зависимость точности диагностирования узлов от количества неисправных узлов для РВС из 50 узлов

Рис. 3. Зависимость точности диагностирования узлов от количества неисправных узлов для РВС из 100 узлов

Рис. 4. Зависимость точности диагностирования узлов от количества неисправных узлов для РВС из 200 узлов

Исходя из полученных результатов, можно сделать следующие выводы:

♦ данный алгоритм лучше применим для вычислительных систем, в которых количество неисправных узлов не превышает 30 % от общего числа узлов системы;

♦ несмотря на небольшую длину обучающей выборки, нейронная сеть сохраняет хорошую обобщающую способность;

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

синдрома распределенной вычислительной системы на основе сверточной нейронной сети. Отличительной особенностью данного алгоритма является применение сверточной нейронной сети, которая не применялась ранее для решения задач самодиагностики, но хорошо зарекомендовала себя при решении задач классификации. Алгоритм реализован и исследован с помощью пакета DeepLearnToolBox интерактивной среды MATLAB (версия R2014b). Проведенные эксперименты и полученные результаты показали, что данный алгоритм лучше применим для вычислительных систем, в которых количество неисправных узлов не превышает 30 % от общего числа узлов системы.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Хорошевский В.Г. Архитектура вычислительных систем: учеб. пособие. - 2-е изд., пере-раб. и доп. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2008. - 520 с.

2. Preparata F.P., Metze G., Chien R.T. On the Connection Assignment Problem of Diagnosable Systems. // IEEE Trans. Electron. Comput. - 1967. - Vol. EC-16, No. 6. - P. 848 854.

3. Barsi F., Grandoni F., Maestrini P. A Theory of Diagnosability of Digital Systems. // IEEE Trans. Comput. - 1976. - Vol. 25, No. 6. - P. 585-593.

4. Chwa K.Y., Hakimi S.L. Schemes for fault tolerant computing: a comparison of modularly redundant and t-diagnosable systems. // Information and Control. - 1981. - No. 49. - P. 212238.

5. Malek M. A comparison connection assignment for diagnosis of multiprocessor systems // Proc. 7th International symposium on computer architecture. - New York, 1980. - P. 31-35.

6. Duarte Jr., E.P., Ziwich, R.P., Albini, L.C.P. A survey of comparison-based system-level diagnosis // ACM Comput. Surv. 43, 3, Article 22, 2011. - 56 p.

7. Elhadef M. A modified Hopfield neural network for diagnosing comparison-based multiprocessor systems using partial syndromes // ICPADS, 2011, Parallel and Distributed Systems, International Conference on, Parallel and Distributed Systems, International Conference on 2011. - P. 646-653.

8. Elhadef M., Nayak A. Comparison-Based System-Level Fault Diagnosis: A Neural Network Approach // IEEE Transactions on Parallel & Distributed Systems. - 2012. - Vol. 23, No. 6.

- P. 1047-1059.

9. Elhadef M., Romdhane L.B. Fault diagnosis using partial syndromes: a modified Hopfield neural network approach // International Journal of Parallel, Emergent and Distributed Systems. - 2014. - Vol. 29, No. 2. - P. 119-146.

10. Осовский С. Нейронные сети для обработки информации: пер. с польского И.Д. Рудин-ского. - М.: Финансы и статистика, 2004. - 344 с.

11. Петров С.П. Сверточная нейронная сеть для распознавания символов номерного знака автомобиля // Системный анализ в науке и образовании. - 2013. - № 3. - С. 66-73.

12. Фраленко В.П., Суворов Р.Е., Овчаренко Р.И., Тихомиров И.А. Автоматическая классификация изображений в задачах фильтрации контента // Информационные технологии и вычислительные системы. - 2015. - № 3. - С. 3-11.

13. Zhang N., Donahue J., Girshick R., Darrell T. Partbased r-cnns for fine-grained category detection // In Computer Vision. - 2014. - P. 834-849.

14. Zeiler M.D., Fergus R. Visualizing and understanding convolutional networks // In Computer Vision. - 2014. - P. 818-833.

15. Jia Y., Shelhamer E., Donahue J., Karayev S., Long J., GirshickR. Caffe: Convolutional architecture for fast feature embedding // Proceedings of the 22nd ACM international conference on Multimedia. - 2014. - P. 675-678.

16. Donahue J., Hendricks L.A., Guadarrama S., Rohrbach M., Venugopalan S., Saenko K., Dar-rell T. Long-term recurrent convolutional networks for visual recognition and description // Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. - 2015.

- P. 2625-2634.

17. Girshick R., Donahue J., Darrell T., Malik J. Region-based convolutional networks for accurate object detection and segmentation // IEEE transactions on pattern analysis and machine intelligence. - 2016. - Vol. 38. - P. 142-158.

18. Hoffman J., Guadarrama S., Tzeng E.S., Hu R., Donahue J., Girshick R., Darrell T, Saenko K. LSDA: Large scale detection through adaptation // Advances in Neural Information Processing Systems. - 2014. - P. 3536-3544.

19. Mohamed A., Dahl G.E., Hinton G. Acous-tic modeling using deep belief networks // Audio, Speech, and Language Processing, IEEE Transactions on. - 2012. - Vol. 20, No. 1. - P. 14-22.

20. Krizhevsky A., Sutskever I. & Hinton G. ImageNet classification with deep convolu-tional neural networks // Nature. - 2015. - Vol. 521. - P. 436-444.

REFERENCES

1. Khoroshevskiy V.G. Arkhitektura vychislitel'nykh sistem: ucheb. posobie [Architecture of computer systems: a training manual]. 2nd ed. Moscow: Izd-vo MGTU im. N.E. Baumana, 2008, 520 p.

2. Preparata F.P., Metze G., Chien R.T. On the Connection Assignment Problem of Diagnosable Systems, IEEE Trans. Electron. Comput., 1967, Vol. EC-16, No. 6, pp. 848 854.

3. Barsi F., Grandoni F., Maestrini P. A Theory of Diagnosability of Digital Systems, IEEE Trans. Comput., 1976, Vol. 25, No. 6, pp. 585-593.

4. Chwa K.Y., Hakimi S.L. Schemes for fault tolerant computing: a comparison of modularly redundant and t-diagnosable systems, Information and Control, 1981, No. 49. pp. 212-238.

5. Malek M. A comparison connection assignment for diagnosis of multiprocessor systems, Proc. 7th International symposium on computer architecture, New York, 1980, pp. 31-35.

6. Duarte Jr., E.P., Ziwich, R.P., Albini, L.C.P. A survey of comparison-based system-level diagnosis, ACM Comput. Surv. 43, 3, Article 22, 2011, 56 p.

7. Elhadef M. A modified Hopfield neural network for diagnosing comparison-based multiprocessor systems using partial syndromes, ICPADS, 2011, Parallel and Distributed Systems, International Conference on, Parallel and Distributed Systems, International Conference on 2011, pp. 646-653.

8. Elhadef M., Nayak A. Comparison-Based System-Level Fault Diagnosis: A Neural Network Approach, IEEE Transactions on Parallel & Distributed Systems, 2012, Vol. 23, No. 6, pp. 1047-1059.

9. Elhadef M., Romdhane L.B. Fault diagnosis using partial syndromes: a modified Hopfield neural network approach, International Journal of Parallel, Emergent and Distributed Systems, 2014, Vol. 29, No. 2, pp. 119-146.

10. Osovskiy S. Neyronnye seti dlya obrabotki informatsii [Neural networks for information processing]: translation from Polish by I.D. Rudinskogo. Moscow: Finansy i statistika, 2004, 344 p.

11. Petrov S.P. Svertochnaya neyronnaya set' dlya raspoznavaniya simvolov nomernogo znaka avtomobilya [Convolutional neural network for character recognition of license plate of the car], Sistemnyy analiz v nauke i obrazovanii [System analysis in science and education], 2013, No. 3, pp. 66-73.

12. Fralenko V.P., Suvorov R.E., Ovcharenko R.I., Tikhomirov IA. Avtomaticheskaya klassifikatsiya izobrazheniy v zadachakh fil'tratsii kontenta [Automatic classification of images in content filtering], Informatsionnye tekhnologii i vychislitel'nye sistemy [Information technologies and computing systems], 2015, No. 3, pp. 3-11.

13. Zhang N., Donahue J., Girshick R., Darrell T. Partbased r-cnns for fine-grained category detection, In Computer Vision, 2014, pp. 834-849.

14. Zeiler M.D., Fergus R. Visualizing and understanding convolutional networks, In Computer Vision, 2014, pp. 818-833.

15. Jia Y., Shelhamer E., Donahue J., Karayev S., Long J., GirshickR. Caffe: Convolutional architecture for fast feature embedding, Proceedings of the 22nd ACM international conference on Multimedia, 2014, pp. 675-678.

16. Donahue J., Hendricks L.A., Guadarrama S., Rohrbach M., Venugopalan S., Saenko K., Darrell T. Long-term recurrent convolutional networks for visual recognition and description, Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2015, pp. 2625-2634.

17. Girshick R., Donahue J., Darrell T., Malik J. Region-based convolutional networks for accurate object detection and segmentation, IEEE transactions on pattern analysis and machine intelligence, 2016, Vol. 38, pp. 142-158.

18. Hoffman J., Guadarrama S., Tzeng E.S., Hu R., Donahue J., GirshickR., Darrell T, Saenko K. LSDA: Large scale detection through adaptation, Advances in Neural Information Processing Systems, 2014, pp. 3536-3544.

19. Mohamed A., Dahl G.E., Hinton G. Acous-tic modeling using deep belief networks, Audio, Speech, and Language Processing, IEEE Transactions on, 2012, Vol. 20, No. 1, pp. 14-22.

20. Krizhevsky A., Sutskever I. & Hinton G. ImageNet classification with deep convolu-tional neural networks, Nature, 2015, Vol. 521, pp. 436-444.

Статью рекомендовал к опубликованию д.т.н., профессор В.К. Трофимов.

Крамаренко Константин Евгеньевич - Сибирский государственный университет телекоммуникаций и информатики; e-mail: kkramarenko@sibsutis.ru; 630017, г. Новосибирск, ул. Б. Богаткова, 194/3, кв. 399; тел.:+79618746083; кафедра вычислительных систем; ст. преподаватель.

Молдованова Ольга Владимировна - Институт физики полупроводников им. А.В. Ржа-нова СО РАН; e-mail: ovm@isp.nsc.ru; 630105, г. Новосибирск, ул. Кропоткина, 115, кв. 35; тел.: +79139372863; к.т.н.; доцент; ведущий инженер-программист.

Kramarenko Konstantin Evgenyevich - Siberian state university of telecommunications and information sciences; e-mail: kkramarenko@sibsutis.ru; 194/3, B. Bogatkova street, ap. 399, Novosibirsk, 630017, Russia; phone: +79618746083; the department of computational systems; senior lecturer.

Moldovanova Olga Vladimirovna - Rzhanov Institute of Semiconductor Physics Siberian Branch of Russian Academy of Sciences; e-mail: ovm@isp.nsc.ru; 115, Kreopotkina street, ap. 35, Novosibirsk, 630105, Russia; phone: +79139372863; cand. of eng. sc., associate professor; advanced programmer engineer.