Научная статья на тему 'Разработка параллельной версии программного комплекса (ПК) для оценки надежности электроэнергетических систем на основе унаследованного ПК янтарь'

Разработка параллельной версии программного комплекса (ПК) для оценки надежности электроэнергетических систем на основе унаследованного ПК янтарь Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
142
30
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РЕИНЖИНИРИНГ / УНАСЛЕДОВАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ / АНАЛИЗ СТРУКТУРЫ / ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ / REENGINEERING / LEGACY SOFTWARE PACKAGE / STRUCTURE ANALYSIS / PARALLEL COMPUTING

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

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

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

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

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

DEVELOPMENT OF THE PARALLEL VERSION OF THE SOFTWARE PACKAGE TO ASSESS THE RELIABILITY OF ELECTRIC POWER SYSTEMS BASED ON LEGACY SOFTWARE YANTAR

The article deals with the problems of legacy software reengineering. It defines the reengineering stages for the legacy software package YANTAR, which is unique for the assessment of electric power system reliability. The results of the software package YANTAR structure analysis are presented. The areas of parallelization are identified. An approach to create a parallel version of the software package based on the legacy software package is proposed. The urgency of the work is determined on the one hand by the importance of the set energy problem, and on the other by the need to create next-generation software for the studies of electric power system reliability, which provides the possibility of parallelization of solving tasks during the computational experiment.

Текст научной работы на тему «Разработка параллельной версии программного комплекса (ПК) для оценки надежности электроэнергетических систем на основе унаследованного ПК янтарь»

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

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

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

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

1. Юмагужин Н.В. Классификация взаимосвязей в схемах данных // Программные продукты и системы. 2007. № 3. С. 204-212.

2. Торшин Д.В. Организация единого интегрированного пространства на основе универсального формата обмена данными // Научно-технические ведомости СПбГПУ, серия «Информатика. Телекоммуникации. Управление». 2009. Т. 71. № 2. С. 26-32.

3. Воробьёва М.С. Построение модели интеграции данных в

информационно-управляющих системах // Модернизация образования в условиях глобализации: круглый стол «Образование через науку и инновации», 14-15 сентября 2005 г. / под ред. В.Н. Кутрунова. Тюмень: Изд-во ТюмГУ, 2005. С. 26-28.

4. Матерон Ж. Основы прикладной геостатистики. М.: Мир, 1968.

5. Давид М. Геостатистические методы при оценке запасов руд. Л.: Недра, 1980.

УДК 004.415.2/:621.311.16.019.3

РАЗРАБОТКА ПАРАЛЛЕЛЬНОЙ ВЕРСИИ ПРОГРАММНОГО КОМПЛЕКСА (ПК) ДЛЯ ОЦЕНКИ НАДЕЖНОСТИ ЭЛЕКТРОЭНЕРГЕТИЧЕСКИХ СИСТЕМ НА ОСНОВЕ УНАСЛЕДОВАННОГО ПК ЯНТАРЬ

1 9

Л.В. Массель1, А.А. Геранюшкин2

1Институт систем энергетики им. Л.А. Мелентьева СО РАН, 664033, г. Иркутск, ул. Лермонтова, 130.

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

Рассмотрены вопросы реинжиниринга унаследованного программного обеспечения. Определены этапы реинжиниринга для унаследованного программного комплекса ЯНТАРЬ, который является уникальным для оценки надежности электроэнергетических систем. Представлены результаты анализа структуры программного комплекса ЯНТАРЬ. Выявлены области распараллеливания. Предложен подход для создания параллельной версии программного комплекса на основе унаследованного ПК. Актуальность работы определяется, с одной стороны, важностью поставленной энергетической задачи, а с другой - необходимостью создания программного обеспечения нового поколения для исследований надежности ЭЭС, предоставляющего возможность распараллеливания решаемых задач при проведении вычислительного эксперимента. Ил. 3. Библиогр. 8 назв.

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

DEVELOPMENT OF THE PARALLEL VERSION OF THE SOFTWARE PACKAGE TO ASSESS THE RELIABILITY OF ELECTRIC POWER SYSTEMS BASED ON LEGACY SOFTWARE YANTAR L.V. Massel, A.A. Geranyushkin

Institute of Energy Systems named after L.A. Melentiev SB RAS,

1Массель Людмила Васильевна, доктор технических наук, профессор, главный научный сотрудник, зав. кафедрой автоматизированных систем, тел.: (3952) 429619, e-mail: massel@isem.sei.irk.ru

Massel Lyudmila, Doctor of technical sciences, Professor, Chief Researcher, Head of the Department of Automated Systems, tel.: (3952) 429619, e-mail: massel@isem.sei.irk.ru

2Геранюшкин Андрей Александрович, аспирант, тел.: 89041177717, e-mail: ger.a@mail.ru Geranyushkin Andrei, Postgraduate, tel.: 89041177717, e-mail: ger.a@mail.ru

130 Lermontov St., Irkutsk, 664033.

National Research Irkutsk State Technical University,

83 Lermontov St., Irkutsk, 664074.

The article deals with the problems of legacy software reengineering. It defines the reengineering stages for the legacy software package YANTAR, which is unique for the assessment of electric power system reliability. The results of the software package YANTAR structure analysis are presented. The areas of parallelization are identified. An approach to create a parallel version of the software package based on the legacy software package is proposed. The urgency of the work is determined on the one hand by the importance of the set energy problem, and on the other - by the need to create next-generation software for the studies of electric power system reliability, which provides the possibility of parallelization of solving tasks during the computational experiment. 3 figures. 8 sources.

Key words: reengineering; legacy software package; structure analysis; parallel computing.

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

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

В Институте систем энергетики имени Л.А. Мелен-тьева (ИСЭМ) СО РАН в конце 1980-х годов был разработан программный комплекс (ПК) ЯНТАРЬ, предназначенный для расчета показателей надежности функционирования основной структуры электроэнергетических систем [1]. ПК ЯНТАРЬ является унаследованным ПО, но до сих пор востребован у исследователей-энергетиков. Алгоритмы, используемые в данном ПК, позволяют разработать параллельную версию программы. Следовательно, он нуждается в реинжиниринге и адаптации его методов для параллельных вычислений [2].

В статье рассмотрены начальные этапы реинжиниринга ПК ЯНТАРЬ и предлагаемый подход к созданию параллельной версии ПК на основе унаследованного ПК ЯНТАРЬ.

Реинжиниринг. Понятие «реинжиниринг информационных систем» не является устоявшимся. Согласно [3], реинжиниринг представляет собой систематическую трансформацию существующей системы с целью улучшения ее характеристик качества, поддерживаемой ею функциональности, понижения стоимости ее сопровождения, вероятности возникновения значимых для заказчика рисков, уменьшения сроков работ по сопровождению системы.

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

• Первый процесс предусматривает восстановление архитектуры существующей системы на основании исходных кодов. Полученная архитектура анализируется на предмет соответствия требованиям к из-

меняемости, надежности, защищенности.

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

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

Кроме того, вопросами, связанными с поддержанием и адаптацией унаследованного ПО в энергетике, в ИСЭМ СО РАН занимались: Л.В. Массель, Е.А. Болдырев, Д.В. Подкаменный и др. В работе [5] предложен системный подход к анализу унаследованного ПО и рассмотрена модель, описывающая унаследованные ПС. Модель основана на анализе модулей системы с учетом набора количественных и качественных характеристик программного кода, а также характера связей между ними.

Таким образом, выделим основные этапы реинжиниринга:

• Оценка существующего ПК. На данном этапе совместно с заказчиком описываются основные недостатки существующей программы. После этого проводится анализ существующей системы. Если модернизация возможна, то осуществляется переход к следующему этапу.

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

• Модернизация ПК. На данном этапе модернизируется функциональность системы согласно "Техническому заданию". Происходит разработка дополнительных модулей.

• Тестирование. После завершения этапа модернизации проект переходит в стадию тестирования, где система проверяется на соответствие "Техническому заданию". Выполняются поиск и исправление ошибок разработки.

• Внедрение. После завершения этапа тестирования происходит процесс внедрения созданного программного продукта, необходимое обучение персонала, устранение ошибок.

Оценка существующего ПК ЯНТАРЬ. Данный ПК

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

На рис. 1 представлена диаграмма процесса оценки надежности ЭЭС при помощи ПК ЯНТАРЬ. Весь процесс можно условно разделить по ролям. Выделяется три роли, или три механизма, организации различных действий при расчете показателей надежности. Исходная информация для расчета формируется исследователем. При помощи текстового редактора исследователь вносит исходные данные в файлы. Все вместе эти файлы составляют вариант исходных данных схемы, который далее загружается исследователем в программный комплекс ЯНТАРЬ. Также для оптимизации ЭЭС с учётом надёжности в интерактивном режиме вносятся дополнительные данные. После выполнения проекта результаты сохраняются в файлах и выводятся на экран.

Пользователи ПК ЯНТАРЬ, в силу развития информационных технологий, предъявляют к нему новые требования. Поскольку существует необходимость его использования, обратим внимание на следующие недостатки системы.

Большое время расчета. Время решения задачи зависит от степени полноты и точности представления исходной информации. Время расчета растет при увеличении объема расчетной схемы (числа узлов и связей), числа различных интервалов.

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

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

На основе диаграммы бизнес-процессов и указанных исследователями недостатков ПК ЯНТАРЬ были сформированы следующие требования к разрабатываемому ПК.

Открытая архитектура. Администратор должен иметь возможность разработки новых возможностей для ПК.

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

Расширяемые аналитические возможности. Возможность интеграции с имеющимися и вновь создаваемыми информационными системами.

Параллельный расчет. Расчет показателей надежности электроэнергетических систем как на различных интервалах, так и на различных схемах.

Централизованное хранение. Программа должна

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

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

программа преобразуется в параллельно-последовательную.

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

Граф вызовов процедур. Это традиционный объект, позволяющий получить первое представление о структуре программы. Данный граф представлен на рис. 2. Каждой программной единице в графе вызовов соответствует отдельная вершина. Вершины соединяются направленной дугой, направление которой определяется следующим образом: если процедура А содержит вызов процедуры В, то дуга следует от А к В.

|Napr_pO

Рис. 2. Граф вызовов процедур ПК ЯНТАРЬ: Yantar - в теле этой процедуры происходят вызовы всех программных модулей; Kon - определение расчетных состояний системы, вычисление ЭНХ связей и показателей надежности; Mdefpot - минимизация

дефицитов с учетом потерь.

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

В рассматриваемом ПК ЯНТАРЬ вершины графа вызовов процедур, которые имеют наибольшее количество исходящих дуг, это Yantar, Kon, Mdefpot. Выполнение программы начинается с процедуры Yantar, в теле этой процедуры происходят вызовы всех программных модулей. В теле процедуры Kon происходит определение расчетных состояний системы, вычисление энергонадежностных характеристик (ЭНХ) связей и показателей надежности, а процедура Mdefpot отвечает за минимизацию дефицитов с учетом потерь. Вершина графа вызовов процедур, которая имеет наибольшее количество входящих дуг, - DelExt. С помощью графа вызовов процедур сразу было обнаружено, что функция Anal_d_p не вызывается ни одной функцией, то есть не используется.

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

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

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

Блок «Расчет показателей надежности для каждого интервала» является наиболее затратным по вычислительной мощности, так как содержит процедуры Kon и Mdefpot, которые имеют наибольшее число исходящих дуг. Максимальное количество интервалов равно количеству месяцев в году, то есть 12. Этот участок является самым трудоемким в вычислительном эксперименте, поэтому именно его нужно адаптировать для параллельных вычислений.

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

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

Определим показатели надежности следующим образом:

для узлов (т=1М) в интервале s= * вероятность безотказной работы

1 Ф^ H K.

деф _ mq>rjk р

Pms=i-Qms=i—ZZZ q

Ts р=1 r=l^=l . (1)

* средний недоотпуск электроэнергии потреби-

телям

энед pдеф „деф _

эт. mprk qmprk р

деф деф

р=1 r=1 k=1 .

* коэффициент обеспеченности потребителей электроэнергией

ф

1 Эт. ' Эт. =1 Эт. ' ^ Ртр 'Т,

' ' / Шф " ф

ф=1 , (3)

где ТП - рассматриваемый расчетный период; Б - количество интервалов. '^с'^с - относительные длительности (вероятности) нарушения электро-

ф.

- длительность

снабжения потребителей; ф=1 ф Ф

интервала; 5 - текущий номер и число расчетных периодов в интервале s, определяемых постоян-

Рн

ными значениями средних нагрузок тф во всех узлах (с учетом расходов на собственные нужды в системе и

т

потерь в распределительных сетях); ф - длительность ф -го периода в часах.

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

Для системы на каждом интервале показатели

р, эн

вычисляются аналогично (1)-(3) [1].

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

Распределим приведенные вычисления для интервалов равномерно между N потоками. Будем считать, что S (количество интервалов) кратно N (количеству потоков). Поскольку все итерации являются независимыми друг от друга и приблизительно одинаковыми по длительности, наиболее естественным способом распараллеливания работы будет распределение ее между потоками, равными интервалами по S/N итераций.

Для этого было решено использовать интерфейс OpenMP, предназначенный для распараллеливания программ в системах с общей памятью [8]. Весь текст программы должен быть разбит на последовательные и параллельные области. В начальный момент времени порождается нить-мастер, которая начинает выполнение программы со стартовой точки. Для поддержки параллелизма используется схема FORK/JOIN. При входе в параллельную область нить-мастер порождает дополнительные нити (выполняется операция FORK). После порождения каждая нить получает свой уникальный номер, а нить-мастер все-

и

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

жидается завершения остальных нитей, и дальнейшее выполнение программы продолжает только она (выполняется операция JOIN).

начало

Открытие файлов с входной информацией и запись в переменные

Запись входной информации в переменные для дальнейшей работы

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

Рис. 3. Обобщенное представление расширенного графа вызовов процедур ПК ЯНТАРЬ

В соответствии с технологией ОрепМР, при входе в параллельную область нить-мастер порождает дополнительные нити или потоки. Поток 1

| Ф1 н К

Рт1 ~1~вт1 =1 Ятррф р

р=1 Г]=1 к=1

Поток 2

1 Ф2 H к2

Pm2 =l~Qm2 =1--ES Я

T

деф T mqyrjk p

Поток N

2 p=1 r=1 K=1

1 ф н К8

Рт* =1^ =1--£

^Б р=1 11=1 к=1

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

1деф. T

I mprk p

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

Работа выполнена при частичной поддержке грантов РФФИ № 11-07-00192, № 10-07-00264 и гранта Программы Президиума РАН № 2.29.

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

1. Ковалев Г.Ф., Лебедева Л.М. Модель оценки надежности электроэнергетических систем при долгосрочном планировании их работы // Электричество. 2000. № 11. С. 17-24.

2. Геранюшкин А.А. Подход к разработке распараллеленного программного комплекса ЯНТАРЬ на основе унаследованной версии // Информационные и математические технологии в науке и управлении // Информационные и математические технологии в науке и управлении: Труды XVI Байкальской всерос. конф.; Ч. III. Иркутск: ИСЭМ СО РАН, 2011. С. 90-98.

3. Bergey J., Hefley W., Lamia W., Smith D. A Reengineering Process Framework, Software Engineering Institute. Carnegie Mellon University, Pittsburgh, 1995.

4. Bergey J., Smith D., Weiderman N., Woods S. Options Analy-

sis for Reengineering (OAR): Issues and Conceptual Approach, Software Engineering Institute. Carnegie Mellon University, Pittsburgh. September, 1999.

5. Массель Л.В., Подкаменный Д.В. Системный анализ и реинжиниринг унаследованного программного обеспечения // Наука и образование (электронное научно-техническое издание, эл. № ФС 77 - 30569, гос. рег. № 0421000025). № 4. 2011. URL: http://technomag.edu.ru.

6. Федотов И.Е. Некоторые приемы параллельного программирования: учеб. пособие. М.: Изд-во Моск. госуд. ин-та радиотехники, электроники и автоматики 2008. 188 с.

7. Воеводин В.В., Воеводин В.В. Параллельные вычисления. СПб.: BHV-Петербург, 2002. 608 с.

8. URL: http://openmp.org/wp/

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