Content uploaded by Nicholas N Olenev
Author content
All content in this area was uploaded by Nicholas N Olenev on May 20, 2016
Content may be subject to copyright.
ISBN 978-5-91601-126-5
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
УЧРЕЖДЕНИЕ НАУКИ
ВЫЧИСЛИТЕЛЬНЫЙ ЦЕНТР ИМ. А.А. ДОРОДНИЦЫНА
РОССИЙСКОЙ АКАДЕМИИ НАУК
Н.Н. ОЛЕНЁВ, Р.В ПЕЧЁНКИН, А.М. ЧЕРНЕЦОВ
ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ В
MATLAB И SIMULINK С ПРИЛОЖЕНИЯМИ К
МОДЕЛИРОВАНИЮ ЭКОНОМИКИ
ВЫЧИСЛИТЕЛЬНЫЙ ЦЕНТР ИМ. А.А. ДОРОДНИЦЫНА
РОССИЙСКОЙ АКАДЕМИИ НАУК
МОСКВА 2015
УДК 512.643 + 519.86
Ответственный редактор
член-корр. РАН И.Г. Поспелов
Монография посвящена вопросам использования рас-
пределенных и параллельных вычислений в среде
MATLAB c
и Simulink c
. Изложена технология настройки
кластера для использования MATLAB. Приведены основ-
ные изменения в программной реализации средств созда-
ния и отладки параллельных программ. Показано приме-
нение платформы Simulink как среды для разработки ди-
намических экономических моделей. На примере задачи
идентификации системы показана процедура определения
параметров эндогенной модели роста экономики России
(с применением технологии распределенных вычислений).
Приведены результаты сценарного моделирования. Моно-
графия будет полезна как пользователям компьютерных
систем, так и исследователям экономистам. Работа выпол-
нена при финансовой поддержке РНФ (номер проекта 14-
11-00432).
Ключевые слова: параллельные вычисления,
MATLAB, Simulink, модель экономики России, иден-
тификация.
Рецензенты: В.В. Дикусар,
А.В. Арутюнов
Научное издание
c
Федеральное государственное бюджетное учреждение
науки Вычислительный центр им. А.А. Дородницына
Российской академии наук, 2015
c
Н.Н. Оленев, Р.В. Печенкин, А.М. Чернецов
Оглавление
Введение 5
I. Администрирование и конфигурирование 15
1.1. Основные обновления и изменения . . . . . 15
1.2. Пакет параллельных вычислений . . . . . . 22
1.2.1. Режим pmode . . . . . . . . . . . . . . 22
1.2.2. Режим matlabpool . . . . . . . . . . . 25
1.2.3. Объектный режим при создании па-
раллельных задач . . . . . . . . . . . 31
II. Моделирование экономических систем
в среде имитационного моделирования
Simulink 37
2.1. Реализация модели экономики с производ-
ственной функцией CES в среде Simulink . . 38
2.2. Базовые понятия и объекты Simulink . . . . 40
2.3. Управление моделью . . . . . . . . . . . . . 46
2.4. Анализ сценарных и фактических данных . 48
III.Идентификация эндогенной производ-
ственной функции 53
3.1. Распределение производственных мощностей 58
3
3.2. Моделирование износа производственных
мощностей в среде Simulink . . . . . . . . . . 61
3.2.1. Реализация блоков износа и фондо-
емкости в Simulink . . . . . . . . . . . 67
3.3. Производительность . . . . . . . . . . . . . . 71
3.3.1. Загрузка производственных мощно-
стей трудом . . . . . . . . . . . . . . . 72
3.4. Формализация модели и ее идентификация 75
3.4.1. Идентификация системы . . . . . . . 77
3.4.2. Результаты идентификации . . . . . 78
3.4.3. Оптимальность идентификации . . . 83
3.4.4. Использование Simulink в различных
режимах параллельных вычислений 88
3.4.5. Сценарные расчеты . . . . . . . . . . 98
Заключение 110
4
Введение
Компьютерные технологии бурно развиваются. Теоре-
тически производительность квантовых компьютеров, на-
пример, может достигать квадрильона операций в секунду.
Однако есть и трудности в развитии. Не все новые техно-
логии быстро удается освоить. Производительность совре-
менных процессоров достигла потолка, поэтому произво-
дители, привыкшие работать в условиях удвоения произ-
водительности компьютеров за два года, стали использо-
вать параллельные и распределенные технологии не толь-
ко в суперкомпьютерах, но и в пользовательской технике.
В условиях свершившегося перехода производителей
процессоров к многоядерным архитектурам параллельное
программирование становится насущным инструментом
каждого продвинутого программиста и научного исследо-
вателя. Стандартом де-факто параллельного программи-
рования является интерфейс передачи сообщений (MPI),
но освоить его удается не всем. Поэтому создатели матема-
тических пакетов программ, среди которых MathWorks c
,
озаботились внедрением параллельных и распределенных
вычислений в свои пакеты. Для осуществления техниче-
ских вычислений в параллельной среде часто выбирают
пакет MATLAB, поскольку он популярен и дружелюбен к
5
пользователю.
Популярность MATLAB необычайно высока, посколь-
ку он является мощным и универсальным пакетом обра-
ботки многомерных данных. Сама структура пакета дела-
ет его удобным средством для проведения матричных вы-
числений. Спектр проблем, исследование которых может
быть осуществлено при помощи MATLAB, не ограничен,
он охватывает, в частности, матричный анализ, обработку
сигналов и изображений, нейронные сети, научные иссле-
дования.
MATLAB — это язык высокого уровня с открытым ко-
дом. Встроенный язык программирования позволяет легко
создавать собственные алгоритмы. За много лет использо-
вания MATLAB создано огромное количество функций и
ToolBox (пакетов специализированных средств), включая
теперь и программные средства высокоскоростных парал-
лельных и распределенных вычислений.
Одним из довольно самостоятельных приложений к па-
кету MATLAB является программа Simulink. При исполь-
зовании Simulink модель строится по принципу визуаль-
ного программирования, когда пользователь на экране из
библиотеки стандартных блоков создает модель динами-
ческой системы и осуществляет расчеты. Доступ к функ-
циям MATLAB и другим его инструментам, включая па-
раллельные, остается открытым и их можно использовать
в Simulink.
Наше решение продолжить начатые в монографии [1]
исследования по применению параллельных вычислений
в MATLAB вызвано не только техническими причинами
(изменились параллельные средства и технологии в паке-
те MATLAB), но и рядом неформальных обстоятельств,
6
среди которых можно выделить три основных:
1. Повышенный интерес читателей к первой нашей сов-
местной работе по параллельному программирова-
нию в MATLAB [1] (на данный момент число ци-
тирований в РИНЦ достигло девятнадцати, а число
скачиваний превысило двадцать тысяч).
2. Получены новые результаты исследования динами-
ческой модели эндогенного роста экономики России
[2-4] и ее множеств идентификации [4-7].
3. В списке приоритетных технологий, поддерживае-
мых Правительством России, стоят параллельное
программирование и моделирование комплексных
систем (см., соответственно, пп. 20 и 41 распоряже-
ния Правительства РФ [8] «О порядке осуществле-
ния иностранных инвестиций в хозяйственные обще-
ства»), имеющие стратегическое значение для обес-
печения обороны страны и безопасности государства.
Монография [1] была первой публичной работой, по-
священной вопросам использования распределенных и па-
раллельных вычислений в среде MATLAB. Технология
апробирована на стандартных задачах линейной алгебры.
Был предложен промышленный подход идентификации
математических моделей сложных систем на основе парал-
лельных средств MATLAB. Подход рассмотрен на примере
простейшей динамической модели экономики современной
России, что позволяет освоить его большому числу потен-
циальных пользователей. Дана экономическая интерпре-
тация полученным результатам идентификации модели и
ее использования в сценарных расчетах.
7
После девальвации курса доллара в результате дефол-
та 1998 г. начался рост валового внутреннего продукта
(ВВП), который продолжался и в год издания моногра-
фии [1] (2007). Однако соответствующие факторы произ-
водства – труд и капитал – согласно данным статистики
практически не менялись. Это поставило вопрос о при-
чинах роста. С помощью высокопроизводительной техни-
ки и параллельных вычислений в MATLAB решена зада-
ча идентификации простейшей модели экономики по дан-
ным России 2000-2006 гг. Определен эффективный капи-
тал, реально используемый в производстве, рост которого
и определял рост ВВП. Оказалось, однако, что рост ка-
питала обусловлен по большей части не новыми инвести-
циями, а вовлечением старых производственных фондов,
доставшихся нашей экономике от советских времен. Но их
источник не безграничен. Он иссякнет.
В результате применения предложенной техники ин-
дентификации параметров модели экономики России по-
лучен важный побочный результат. Найдена оценка вре-
мени окончания процесса вовлечения незагруженных про-
изводственных мощностей в конце 2008 г., т.е. получен про-
гноз кризиса российской экономики 2008 г., который свя-
зан с внутренними проблемами исчерпания резерва произ-
водственных мощностей, созданных еще в советское вре-
мя. Несмотря на грубость модели прогноз оказался точ-
ным. Кризис мировой экономики совпал по времени, од-
нако из развивающихся стран БРИКС только российская
экономика испытала такой значительный спад. Таков был
базовый (пессимистический) сценарий развития россий-
ской экономики, рассмотренный в [1].
Для полноты картины был рассмотрен и оптимистиче-
8
ский сценарий развития российской экономики. Оптими-
стический сценарий построен из предположения, что нач-
нется рост на основе научно-технического прогресса, на ос-
нове замены старых советских производственных фондов
на новые, более производительные, на основе сокращения
времени от получения заказа до его оплаты. Формально
это можно выразить повышенной отдачей на используе-
мые факторы производства. К сожалению, такой рост сам
собой не начнется, а соответствующие экономические ме-
ханизмы лицами, принимающими решения, не были задей-
ствованы до сих пор.
Устойчивость прогнозирования на модели экономики
зависит от качества идентификации модели. Вопрос об
устойчивости прогнозирования был исследован в 2010-
2015 гг. на идентифицированной модели типа Рамсея с
помощью разработанного в ВЦ РАН оригинального ме-
тода множеств идентификации [5,7]. В методе множеств
идентификации исследуются многомерные график и над-
график функции ошибок, а также поведение этого мно-
жества в окрестности оптимальных параметров. Визуа-
лизация множества идентификации позволяет исследова-
телю выбирать параметры модели, сочетая результаты
наблюдений с собственным неформализованным опытом.
Неустойчивость решения задачи идентификации модели
может приводить к принципиально разным прогнозам при
кризисных изменениях в экономике [5,6].
Критерием качества идентификации служит миними-
зация некоторой выбранной свертки ошибок идентифика-
ции. Визуализация множеств идентификации для указан-
ной модели показала, что небольшой сдвиг по параметрам
начальной точки дает совершенно разные траектории раз-
9
вития экономической системы, то есть спад экономики не
является неизбежным. Ручное управление здесь дает воз-
можность сдвига состояния экономики в положение, кото-
рое обеспечивает устойчивый экономический рост.
Использованная в [1,5,7] модель экономики не да-
ет возможности однозначно ответить на вопрос, по како-
му сценарию будет развиваться экономика России. Мож-
но только сделать вывод, что дальнейшее развитие суще-
ственно зависит от экономической политики, которая бу-
дет проводиться в ближайшее время. Если не предприни-
мать никаких усилий, то рост за счет вовлечения старых
фондов скоро прекратится. Если экономическая политика
будет основываться на использовании достижений научно-
технического прогресса, то возможен благоприятный про-
гноз. Итак, одним из результатов анализа устойчивости
прогнозирования по множествам идентификации для мо-
дели экономики типа Рамсея является вывод о возможно-
сти перехода за счет продуманных решений из неустойчи-
вого положения к режиму экономического роста.
Значит, надо продолжать исследование российской эко-
номики с помощью математических моделей, описываю-
щих возможность структурных изменений [2]. В [2] пока-
зано, что для описания идущих в экономике России про-
цессов надо строить математические модели с дифферен-
цированными по возрасту производственными фондами.
Итоги исследовательско-преподавательской работы по
применению MATLAB при изучении паралельного про-
граммирования были изложены в работах [9-11].
Дальнейшее исследование задачи идентификации эко-
номики России и методическая работа по вопросам парал-
лельного программирования продолжены в работах [7,12].
10
Задача идентификации модели экономики типа Рамсея по
данным России [1] используется в качестве образца в зада-
чах идентификации подобных моделей по статистическим
данным других стран в домашних, курсовых и выпускных
работах студентов МФТИ(ГУ), РУДН и ВятГУ [7, 13-15].
Применение функционала параллельного программи-
рования в MATLAB также нашло отражение в работе
[16], изданной в рамках серии «Суперкомпьютерное обра-
зование». В этой работе представлены вопросы разработ-
ки технологий программного обеспечения, такие как теку-
щий статус, приложения и параллельные алгоритмы, про-
граммное обеспечение и программные инструменты, язы-
ки и компиляторы, вычислительные среды и визуализация
расчетов.
Отдельно стоит упомянуть проект использования па-
раллельного функционала MATLAB на кластере «Уран»
института математики и механики им. Н.Н. Красовского
(ИММ УрО РАН) см. [17]. На сайте этого института при-
ведена краткая инструкция по использованию параллель-
ного MATLAB, даны примеры параллельной программы,
ее запуска и применения параллельного профилирования.
Порядок изложения материала в настоящей работе на-
поминает работу [1]. Как и прежде, изложение начинается
с первоначального знакомства с основополагающими объ-
ектами MATLAB, позволяющими настроить среду испол-
нения параллельных и распределенных программ. В рам-
ках первой главы приводятся примеры простейших про-
грамм для параллельного исполнения.
Вторая глава посвящена реализации средствами
Simulink экономической модели, рассмотренной нами в ра-
боте [1]. Такой выбор обусловлен желанием расширить
11
необоснованно узкий круг книг на русском языке, кото-
рые посвящены практическим примерам использования
Simulink в экономических исследованиях. Здесь, кроме ра-
боты И.Ф. Цисаря [18], процитировать в общем-то нечего.
Из работ, изданных на аглийском языке, стоит упомянуть
[19], содержащую примеры финансовых моделей, реали-
зованных в Simulink. Связано это, по нашему мнению, с
тем, что за Simulink прочно закрепился статус эталонной
среды для моделирования динамических систем техниче-
ской направленности, что в какой-то мере отпугивает по-
тенциальных пользователей, работающих над социально-
экономическими моделями. В то же время, работая над
моделями, описанными в данной книге, мы ловили се-
бя на мысли, что язык Simulink очень напоминает язык
dynamo, изобретенный и используемый Д. Форрестером
[20].
Третья глава посвящена описанию и идентификации
экономической модели, основанной на учете дифферен-
циации производственных фондов по моментам создания.
Основой служит математическая модель производствен-
ной функции, представимой распределением производ-
ственных мощностей по технологиям [21]. В [21] производ-
ственная мощность и ее технология (трудоемкость) опре-
деляются в момент создания и медленно меняются с воз-
растом по заданному закону. Решая задачу построения мо-
дели российской экономики и ее идентификации на реаль-
ных статистических данных, мы старались сопроводить
изложение примерами технической реализации с исполь-
зованием как MATLAB, так и Simulink. При этом методы
паралелльного и распределенного программирования бы-
ли специально применены нами в задаче идентификации
12
параметров модели конкретной экономики, чтобы нагляд-
ным образом продемонстрировать применимость средств
распределенных вычислений при решении практической
(“не лабораторной”) задачи.
Задачи, решаемые известными мировыми исследовате-
ли в прикладных областях экономики [22], а также иссле-
дователями, работающими в глобальных инвестиционных
банках [23-25], несомненно являются ресурсоемкими в вы-
числительном плане (о чем эти исследователи сами гово-
рят в своих работах1. Тот факт, что в своих работах они
не раскрывают своих моделей и не указывают технических
средств их реализации, не говорит о том, что в решении
своих задач они не используют многопроцессорную архи-
тектуру для прироста производительности.
Сценарные расчеты, приведенные нами в заключитель-
ном разделе (стр. 98), показывают возможные траектории
развития (в рамках рассматриваемой модели) суммарной
производственной мощности экономики России, обе траек-
тории являются достижимыми (достижимыми в том смыс-
ле, что обе являются следствием воздействия на систему
1Лоренс Котликофф: “Создание и настройка динамической ими-
тационной модели жизненного цикла требует большой работы, на
которую обычно уходит целый год или даже больше. Программный
код, которым можно наполнить небольшую книжку, нужно тщатель-
но проверить.. И хотя сегодняшние мощные компьютеры работают
поразительно быстро, на вычисления могут потребоваться дни, по-
тому что модели должны нащупать траекторию перехода к новому
общему равновеcию (считаем необходимым напомнить читателям,
что Л. Коткликофф был привлечен в качестве эксперта к пенсион-
ной реформе, проводимой Правительством РФ)”.
Автор акронима БРИК Джим О’Нил использует в своей моде-
ли восемнадцать переменных (в индексе GES - Global Environment
Score).
13
определенных управляющих параметров), при этом одна
из траекторий есть формализация на уровне модели так
называемых «майских указов» Президента РФ В.В. Пути-
на, подписанных им в мае 2012 г. [26].
Основная часть работы по представленному здесь ис-
следованию была выполнена в период 2013-2014 гг., по-
этому анализ эффекта вхождения новых субъектов в со-
став России ни на уровне анализа статистических данных,
ни на уровне оценки влияния взаимных санкций, после-
довавших за этими событиями, не был проведен и не на-
шел отражения в исследовании рассмотренной модели, но
несомненно эти события могут и должны являться темой
отдельного исследования.
14
I. Администрирование и
конфигурирование
Данный раздел построен по структуре аналогичным
образом, что и соответствующий раздел нашей первой ра-
боты [1], и содержит в себе перечень основных обновлений
в программной реализации параллельных вычислений в
MATLAB. Здесь описаны также приемы, которые помо-
гут пользователям оптимальным образом запускать необ-
ходимые службы, создавать объекты, управлять класте-
ром, исключив проблемы, связанные с операционной си-
стемой.
Цель данного раздела – описать принципиальную схе-
му работы двух пакетов MATLAB, которые реализуют
технологию распределенных и параллельных вычислений.
1.1. Основные обновления и изменения
В 2005 г. для того, чтобы занять определенный сегмент
рынка инженерного программного обеспечения, предна-
значенного для программирования распределенных за-
дач, компанией MathWorks были разработаны и вы-
15
пущены на рынок два новых продукта под названи-
ем Distributing Computing Toolbox (DCT) и MATLAB
Distributing Computing Engine (MDCE). На момент появ-
ления эти два пакета расширений нельзя было рассматри-
вать отдельно друг от друга, и применялись они только
в связке. Оба эти toolbox изначально были предназначе-
ны для решения одной задачи – увеличения производи-
тельности (сокращения времени счета) при использовании
нескольких компьютеров, объединенных в сеть, вместо од-
ного. Однако с момента выхода [1] произошли некоторые
изменения в функционалах данных пакетов.
Прежде всего, начиная с версии MATLAB 2007b,
компания Mathworks переименовала toolbox, отвеча-
ющие за возможности параллельного программирова-
ния: вместо Distributing Computing Toolbox и MATLAB
Distributing Computing Engine они получили новые на-
звания: Parallel Computing Toolbox иMATLAB
Distributing Computing Server. По мнению авторов,
это было сделано, вероятно, в маркетинговых целях для
выделения в функционале направленности параллельно-
го программирования. Во-вторых, было снято требование
совместного использования тулбоксов. Теперь для много-
ядерных систем с числом ядер до четырех не требова-
лось приобретать лицензию на MDCS. Далее, после вы-
хода matlab R2009b количество ядер было увеличено до
восьми, а по мере развития вычислительной техники это
число было еще увеличено. Более подробная информация
представлена далее в данной главе. Документация по обо-
им пакетам в части инсталляции и настройки в настоящее
время объединена.
Также необходимо отметить возможность запуска ра-
16
бочих процессов MATLAB на клиентской рабочей станции,
используя локальный планировщик; важным ограничени-
ем, однако, является максимальное количество запускае-
мых рабочих процессов. В таблице ниже приведены срав-
нительные характеристики различных версий.
Версия Число рабочих
процессов
Соответствие с
характеристиками
процессоров
2006B 1 одноядерные системы
2007A 4 четырехъядерные
2009A 8 двухпроцессорные
четырехъядерные
2011B 12 двухпроцессорные
шестиядерные
2014A не ограничено
по умолчанию задается
число физических
ядер процессора
При использовании промышленного кластера в каче-
стве MATLAB клиента может выступать любой компью-
тер, подключенный к сети и имеющий доступ к кластеру,
для scheduler обычно выделяют один из узлов кластера, на
всех остальные узлах кластера можно запустить по одно-
му процессу. Запускать на одном узле несколько процессов
имеет смысл только в случаях, когда узел многопроцессор-
ный либо многоядерный. Ниже на рис.1приведена офици-
альная блок-схема, иллюстрирующая логику, положенную
в основу функционирования Parallel Computing Toolbox.
17
Рис. 1. Две технологические реализации механизма рас-
пределенных вычислений
Следует отметить, что несмотря на то, что на офици-
альной диаграмме MathWorks в левой части блок-схемы
на рис. 1(Parallel Computing Toolbox) отсутствует изоб-
ражение планировщика, в действительности он запуска-
ется автоматически, и именно планировщик осуществляет
взаимодействие рабочих процессов, запущенных на ядрах
локальной станции.
На странице MathWorks [27] представлены некоторые
функции MATLAB, параллелизм которых реализован на
уровне самих функций и не требует оптимизации.
В силу того, что промышленные многопроцессорные
системы не доступны широкому кругу пользователей, а
также в силу того, что за последние годы многоядерные
настольные системы получили достаточно широкое рас-
пространение, считаем целесообразным начать знакомство
18
с технологией параллельных вычислений именно с пакета
Parallel Computing Toolbox (левая часть рис. 1).
Отсутствие необходимости настраивать кластер и со-
здавать объекты делает Parallel Computing Toolbox неза-
менимым для целей первоначального знакомства1.
Требования к аппаратному и программному обеспече-
нию
Аппаратная платформа (общие требования):
•Для некоторых типов лицензий FlexLm Manager вер-
сии 11.1.1.12 (поставляется вместе с MATLAB).
•В случае использования Flexlm требуется примене-
ние протокола TCP/IP на всех платформах исполь-
зующих сервер лицензий.
•Для лицензий, использующих аппаратный ключ,
требуется наличие USB порта.
Минимальные требования к объему оперативной памя-
ти и дисковому пространству изложены в таблице ниже.
Параметр Минимум Рекомендовано
Дисковое пространство 1 Гб 3-4 Гб
Оперативная память 1 Гб на ядро 2 Гб на worker
Минимальное дисковое пространство 460 Мб требуется
для инсталляции ядра и справочной системы.
Для 32-битной архитектуры возможна работа на сле-
дующих микропроцессорах фирм Intel и AMD:
1Все примеры в данной работе выполнены на ноутбуке: Intel(R)
CoreTM M480 @2.67 GHz, ОЗУ 8ГБ, под управлением ОС Windows 7
Professional и на Apple MacBook Pro 13 Mid 2013, Core i5, ОЗУ 8ГБ.
19
Фирма Микропроцессор
Intel Любой МП с поддержкой набора
инструкций SSE2
AMD Любой МП с поддержкой набора
инструкций SSE2
Для 64-битной архитектуры можно использовать мик-
ропроцессоры: EM64T у Intel, AMD64 у AMD.
Macintosh: любой Intel-Based Мас с процессором Intel
Core 2 и более поздних версий.
Операционная система:
•Для Windows – Windows XP SP3/2003 R2 SP2/Vista
SP2/Windows 7/8/8.1.
•Для Linux – начиная с ядра версии 2.6.x и GLIBC
2.11.
•Для Solaris – начиная с версии R2010b не поддержи-
вается.
•Для Macintosh – Intel-Rased Mac OS X 10.7.4 (Lion),
10.7 (Mountain Lion), 10.8 (Mavericks).
Минимальные требования к характеристикам системы
для работы Parallel Computing Toolbox изложены в табли-
це ниже.
Параметр Минимум Рекомендовано
Дисковое пространство 10 Гб 15 Гб
Оперативная память 1 Гб на ядро 2 Гб на worker
Общие требования к аппаратной платформе и операци-
онной системе определены. Это позволяет запускать ядро
MATLAB.
20
Для обеспечения бесперебойной работы сервисов паке-
та параллельных вычислений рекомендуем на время ра-
боты выключить брандмауэр Windows, хотя уже версия
R2011B позволяет настраивать брандмауэр таким образом
чтобы не прерывать исполнение соответствующих функ-
ций пакета.
Дополнительно стоит отметить, что при использовании
Win 7 home premium раньше возникали проблемы, связан-
ные с запуском служб, из-за отсутствия полноценных прав
администратора. После обновления системы до выпуска
Professional эти проблемы исчезли.
Все дальнейшие работы, связанные с настройкой кла-
стера, проводились уже под учетной записью администра-
тора.
Требования к MPI
MATLAB R2014a поставляется с реализацией MPI-2
[28] mpich2 v. 1.4.1p1. Вместо стандартной библиотеки
можно подключить собственную реализацию MPI. Для
этого она должна удовлетворять следующим условиям:
•Быть собранной как динамическая библиотека.
•Иметь заголовочный файл mpi.h, полностью совме-
стимый с mpich2.
Более подробно о подключении собственных реализаций
MPI можно прочитать в документации MathWorks [29].
21
1.2. Пакет параллельных вычислений
1.2.1. Режим pmode
Самое первое знакомство с параллельными вычисле-
ниями рекомендуем начинать с интерактивного режима
pmode. Данный режим запускает окно приложения, в ко-
тором пользователь в командной строке может вводить
команды, которые будут исполняться одновременно все-
ми сессиями (рабочими), причем приложение реализовано
таким образом, что каждое окно, по сути, есть окно про-
смотра пространства переменных рабочих.
Следующая команда запускает режим pmode с двумя
рабочими процессами.
>> pmode start local 2
Результатом исполнения данной команды будет окно при-
ложения (см. рис.2). Следует отметить, что несмотря на
то, что пользователь в явном виде не указывает имя пла-
нировщика, хост-имена, где должны быть запущены ра-
бочие процессы, MATLAB по умолчанию запускает пред-
определенный планировщик. После выполнения данной
команды в списке процессов диспетчера задач Windows по-
мимо имени процесса, отвечающего за работу локальной
сессии MATLAB, будут показаны еще два системных про-
цесса MATLAB, по умолчанию объем оперативной памя-
ти, зарезервированный под данные процессы – 100 Мбайт
(механизм изменения параметров запускаемых процессов
не изменился и производится через изменение файла на-
стройки).
Запуск команды pmode с параметром числа рабо-
чих, отличного от двух, вызовет ошибку с предложени-
22
Рис. 2. Окно приложения запускаемое в режиме pmode
ем настроить конфигурационный файл. Настройка кон-
фигурационных файлов теперь может быть осуществле-
на с помощью специальных GUI, расположенных в ме-
ню Parallel панели инструментов. Так, например, выбрав
команду Parallel-> Configurations Manager -> local,
можно определить число рабочих, запускаемых при стар-
те конфигурации local (Number of workers available for
scheduler (cluster size), допустим 4). Теперь выполнение ко-
манды:
>> pmode start local
приводит к запуску консоли pmode с четырьмя рабочими
процессами.
Несмотря на продвижения в плане удобства конфигу-
рирования и просмотра текущих статусов кластера авто-
ры продолжают считать режим pmode своего рода “про-
смотрщиком” рабочего пространства (пространства пере-
менных) рабочих процессов. Выполнять большие с точ-
23
ки зрения листинга программы в таком режиме крайне
затруднительно. Однако исключительно для целей ил-
люстрации работы некоторых функций mpi (таких, как
labindex, numlabs, labBroadcast) данный режим являет-
ся достаточно иллюстративным. Так, например, на рис.
2приведен пример исполнения каждым рабочим двух ко-
манд:
>> labindex,
>> labindex*ones(3).
Выполнение следующей команды в консоли pmode
>> A=labindex*ones(3)
создает соответствующие переменные Aв сессиях рабо-
чих. Для копирования переменных из пространств рабо-
чих в рабочую область локальной сессии MATLAB нуж-
но воспользоваться командой pmode lab2client A 1 (где
1- номер рабочего). Для копирования переменных из ло-
кальной сессии в сессии рабочих используется функция
client2lab, ввод данной функции также осуществляется
в локальном командном окне:
>> pmode client2lab X 1:2,
где X– переменная, определенная в локальной сессии, 1:2
– диапазон индексов рабочих, в сессии которых должна
быть скопирована переменная.
После окончания работы в режиме pmode необходимо
окончить сессиию, введя команду: >>pmode close в ло-
кальной сессии, в противном случае при повторном запус-
ке режима возникнет сообщение об ошибке.
24
1.2.2. Режим matlabpool
Более высокоуровневым с точки зрения разработ-
ки и отладки параллельных программ является режим
matlabpool. Данный режим так же, как и pmode, запускает
кластер с предопределенными параметрами на локальной
машине, однако общение с кластером (рабочими процесса-
ми) производится не через консоль, позволяющую вводить
команды только через командную строку, а через привыч-
ный каждому пользователю MATLAB редактор m файлов.
Запуск режима matlabpool производится аналогичным
с pmode образом (за исключением того, что команда запус-
ка указывается в m файле сценария). Однако сам по себе
запущенный режим matlabpool не позволяет обращаться к
ресурсам кластера. Для этой цели служит команда spmd
(от англ. Single Program Multiple Data) – конструкция –
одна программа, много данных (входных и выходных).
Общий вид файла-сценария для работы с кластером
посредством режима matlabpool выглядит следующим об-
разом:
matlabpool
spmd
statements
end
matlabpool close,
где внутри окружения spmd содержатся выражения, кото-
рые будут выполняться каждым рабочим.
25
Использование mpi функций в режиме matlabpool
Даже при наличии в пакете параллельных вычислений
большого количества функций, режимов, объектов, облег-
чающих работу математиков – программистов по уско-
рению решения широкого спектра задач, не следует за-
бывать, что в первую очередь отличительной особенно-
стью данного пакета является возможность использования
функций mpi, именно навыкам работы с этими функциями
будут посвящены следующие разделы.
В разделе, посвященном режиму pmode, был приведен
пример использования mpi функции labindex, эта функ-
ция так же, как и функция numlabs, – функция-примитив.
Без функций-примитивов использование параллельных
технологий вычислений просто невозможно. В режиме
matlabpool становится возможным работать с более слож-
ными mpi функциями, такими как labSend,labReceive,
labProbe.
Задача о «жонглировании» переменными: си-
стема состоит из двух рабочих процессов, рабочий 1
создает некую матрицу A1,рабочий 2 в конечном цикле
переопределяет матрицу A2.
Необходимо написать программу, выполняющую
перечисленные ниже задачи.
1. Рабочий 1 должен отправить матрицу A1 рабочему 2
после того, как тот закончит цикл.
2. Рабочий 2 должен отправить матрицу A2, получен-
ную на финальной итерации, рабочему 1.
26
3. После окончания программы жонглирования необхо-
димо удостовериться, что в пространстве перемен-
ных рабочего 1 определена матрица A2, а в про-
странстве переменных рабочего 2 определена мат-
рица A1.
При написании процедур с использованием mpi функ-
ций следует помнить, что файл-программа будет испол-
няться рабочими одновременно на нескольких процессо-
рах (spmd логика), эта особенность автоматически приво-
дит к тому, что структура файл-программы должна отли-
чаться от обычной линейной, последовательной програм-
мы.
27
Листинг файла сценария juggling1.m
1 mat la bp oo l ( 2 )
2 %%
3 spmd
4 i f la bi nde x==1
5 A1=o ne s ( 2 ) ;
6 l ab Se nd ( A1 , 2 ) ;
7 dat a_f rom_2_l ab=l a bR e ce i ve ( 2 ) ;
8 e l s e
9 f o r i = 1: 10^ 5
10 A2=r an d ( 2 ) ;
11 end
12 la bS en d ( A2 , 1 ) ;
13 d ata _fr om_1_la b=l a bR e ce i ve ( 1 ) ;
14 end
15 end
16 %%
17 m at la bp o ol c l o s e
Программаjuggling1.m выполняет сформулирован-
ную выше задачу. Прокомментируем ее структуру. Стро-
ки 1, 17 открывают параллельную сессиию и закрывают
ее. Структура if else разделяет программу на две ветви
первого и второго рабочего процесса. Следует отметить,
что если рабочих процессов, участвующих в решении за-
дачи много, то распределить задачу между ними довольно
легко с помощью структуры for i=1:numlabs.
Как указано в задаче, рабочий 1 после создании мат-
рицы A1 отправляет ее рабочему 2 с помощью команды
labsend (строка 6). При этом следует помнить, что если в
программе стоит команда labsend, то где-то должна сто-
28
ять команда labrecieve (в нашем случае это строка 13).
Второй рабочий переопределяет матрицу A2, после чего
отправляет ее рабочему 1 (строка 12), рабочий 1 прини-
мает матрицу A2 (строка 7).
Результатом выполнения данной программы сценария
будут четыре переменные, определенные в локальной сес-
сии, а именно A1,A2,data_from_1_lab,data_from_2_lab
иi. Тип этих переменных – copmosite, данный тип пере-
менных появился начиная с версии 2007b и представляет
из себя, по сути, ссылочный тип данных. Следующие ко-
манды выполнены в локальной сессии.
>> data_from_2_lab
data_from_2_lab =
Lab 1 : c l a s s = d ou b le , s i z e = [ 2 2 ]
Lab 2 : No d at a
>> da ta_f rom_ 2_l ab {1 }
ans =
0.8993 0.4407
0.4037 0.6615
>> da ta_f rom_ 2_l ab {2 }
E rr o r u s in g Co mp os it e/ s u b sr e f ( l i n e 6 7)
An i n v a l i d i n d ex i ng r e q ue s t wa s made
Caused by :
E rr o r u s i ng C om po si te / s u b s r e f
>i C he c kV a lu es E xi s t ( l i n e 8 6 )
The Composite h as no val u e on t he
f o l l o w i n g l a b ( s ) : 2 .
Сообщение об ошибке при обращении к переменной
data_from_2_lab{2} вполне обоснованно, так как пере-
менная с таким именем в пространстве имен рабочего 2
29
не определена. Таким образом, тип данных composite, по
сути, представляет из себя ссылки на переменные с оди-
наковыми именами во всех сессиях рабочих.
Остается открытым вопрос №3 задачи о «жонглирова-
нии», а именно надо убедиться, что в пространстве пере-
менных рабочего 1 определена матрица A2, а в простран-
стве рабочего 2 определена матрица A1.
На данный вопрос ответ можно получить, воспользо-
вавшись доступом к переменным рабочих, посредством
ссылочного типа данных composite, а можно просто рас-
комментировать выражение (удалить оператор ;) в стро-
ках 7 и 13.
На достаточно простом примере (не имеющем под со-
бой прикладной задачи) были продемонстрированы базо-
вые приемы: разделения задачи на разные рабочие про-
цессы, отправка/получение сообщений.
Вопросы, которые логично могут возникнуть при реа-
лизации данной задачи:
1. Очевидно, что рабочий 1 быстрее рабочего 2 дости-
гает строки программы, к которой он отправляет пе-
ременную A1 (в момент отправки переменной, оче-
видно, что рабочий 2 еще выполняет в цикле пере-
определение матрицы), в связи с чем возникает во-
прос, что физически происходит с отправленной пе-
ременной A2?
2. Прием переменной A1 в сессии второго рабочего про-
исходит только на строке 13. Если перенести стро-
ку с приемом на уровень выше, чем начало цикла,
уменьшит ли это общее время выполнения задачи?
Снизит ли это транзакционные издержки, вызван-
30
ные тем, что переменная A1 не может быть переме-
щена в пространство второго рабочего и на время
исполнения цикла вынуждена находиться в проме-
жуточном пространстве между рабочими.
3. И, наконец, третий вопрос, существуют ли функции
mpi, позволяющие «пинговать» (тестировать) неко-
торому рабочему состояние другого рабочего? Про-
верить выполняет ли он какие-либо вычисления или
простаивает и, следовательно, ему можно послать со-
общение с данными. Насколько трудоемок данный
процесс, насколько оправданы затраты времени на
такое тестирование занятости?
1.2.3. Объектный режим при создании парал-
лельных задач
Ниже будет описан ряд процедур, необходимых для
конфигурирования кластера, и затем будут продемонстри-
рованы процедуры создания параллельных задач посред-
ством объектного программирования. Методологически
раздел, посвященный запуску кластера и настройке соот-
ветствующих служб планировщиков, можно было выне-
сти перед разделами pmode и matlabpool, так как запуску
данных режимов предшествует запуск планировщика, ра-
бочих, объединенных в кластер в автоматическом режи-
ме (без непосредственного участия пользователя). Одна-
ко при такой последовательности представления инфор-
мации, как нам кажется, у пользователей может возник-
нуть ощущение, что параллельное программирование в
MATLAB сопряжено с большими трудностями по настрой-
ке и конфигурированию кластера, что на самом деле не
31
так. Именно поэтому материал, посвященный службам,
планировщикам, рабочим, объединен нами в разделе объ-
ектного программирования параллельных задач.
Настройка кластера
Ниже будет рассмотрен сквозной пример по настройке
клаcтера на четырехъядерном ноутбуке. С момента выхо-
да первого релиза пакетов для параллельных и распре-
деленных задач парадигма (концепция) функционирова-
ния кластера существенно не поменялась. С точки зрения
MathWorks кластер на основе MATLAB должен выглядеть
следующим образом (см. рис.1).
Локальный планировщик
Служба mdce необходима для запуска в ней (вообще го-
воря, для восприятия удобно понимать под службой mdce
некую среду) планировщиков и рабочих; если по какой-то
причине произошел сбой в работе планировщика, то служ-
ба восстановит его резервную копию с сохраненными на-
стройками (с ассоциированными с ним рабочими снова).
Именно так была реализована технология создания кла-
стера в первых релизах. Текущая версия 2014B позволя-
ет, используя Parallel Computing toolbox, создавать кла-
стер на локальной многоядерной станции без использова-
ния службы mdce.
Для запуска локального кластера достаточно вы-
брать в главном меню режим Parallel и в разделе
Select Configuration выбрать local. В разделе Manage
Configuration необходимо указать количество задействуе-
мых рабочих, ассоциированных с планировщиком (в на-
32
шем сквозном примере это 4). Ключевой и самой важной
особенностью планировщика local является то, что он су-
ществует “внутри” клиентской сессии MATLAB (см рис.3)
и не требует наличия запущенной службы mdce на локаль-
ной станции.
Рис. 3. Схема кластера реализованного на локальной ра-
бочей станции
При создании и отправке параллельной задачи на счет
планировщик local запускает то количество рабочих про-
цессов, которое пользователь определил для данной за-
33
дачи и в момент отправки активирует необходимое чис-
ло системных процессов MATLAB. В этом объектный ре-
жим работы с кластером несколько отличается от режима
matlabpool, где запускаемые командой matlabpool(n) n ра-
бочих существуют (отображаются в диспетчере задач) до
тех пор, пока не поступает команда прервать данный ре-
жим matlabpool close.
По сути, минимальная настройка кластера может быть
выполнена через меню Manage Configuration.
Будем считать, что минимальный кластер с четырьмя
рабочими процессами на нашем ноутбуке запущен. Воз-
можность работы кластера с указанным количеством уз-
лов проверяется кнопкой start validation, результаты про-
гонки показаны на рис.4.
Рис. 4. Результат прогонки локального кластера
34
Иерархия объектов и последовательность их создания
Первым в иерархии объектов пакета параллельных
вычислений стоит планировщик, именно через него
посредством его свойств и методов происходит обще-
ние с рабочими процессами. Универсальная команда
findResource возвращает ссылку на системный процесс
локального планировщика:
>> all_managers =
findResource(’scheduler’,’type’,’local’)
Local Scheduler Information
===========================
Type : local
ClusterOsType : pc
ClusterSize : 2
DataLocation : C:\Users\
\AppData\MathWorks
\MATLAB\local_scheduler_data\R2011b
HasSharedFilesystem : true
- Assigned Jobs
Number Pending : 0
Number Queued : 0
Number Running : 0
Number Finished : 1
- Local Specific Properties
ClusterMatlabRoot : Y:\R2011B
Планировщик целесообразно рассматривать как некий
инструмент (конструктор) для создания новых объектов -
задач (параллельных или распределенных).
35
Из-за трудностей перевода у русскоязычных читателей
может возникнуть ошибочное восприятие названий объ-
ектов, речь идет об объекте Task и дочернем ему объ-
екте Job. Дословный перевод обоих терминов подразуме-
вает некую вычислительную задачу. Однако в концепции
иерархии объектов MATLAB данным терминам приписы-
вается разная смысловая нагрузка.
Начиная с версии R2012a (см. [30]) произошло переиме-
нование привычных к тому времени названий.
Старое наименование Наименование с R2012a
MathWorks job manager MATLAB job scheduler (MJS)
Third-party or local scheduler Common job scheduler (CJS)
Configuration Profile
Scheduler Cluster
В основном перешли от отдельных функций к объектно-
ориентированному представлению, и все стало методами и
свойствами класса Parallel. Например, управление класте-
ром “переехало” в parallel.cluster.xxx, управление задания-
ми – в parallel.job, рабочие процессы – в Parallel.cluster.xxx.
36
II. Моделирование
экономических систем в среде
имитационного моделирования
Simulink
В предыдущей работе [1], посвященной параллельным
вычислениям в MATLAB и их приложениям, мы рассмот-
рели открытую модель российской экономики типа Рам-
сея, в которой производство единственного однородного
продукта описывается производственной функцией с по-
стоянной эластичностью замещения (CES-функцией). Ре-
ализация модели и ее идентификация были произведены в
среде MATLAB, в этой же среде были проведены сценар-
ные расчеты на основе идентифицированной системы.
В настоящей работе предлагается не просто сравнить
полученные результаты с фактическими результатами, до-
стигнутыми экономикой России за последние три года, а
реализовать задачу сценарных расчетов по уже иденти-
фицированной модели (разд. 3.3 [1]) на основе платфор-
мы имитационного моделирования Simulink. Это потребу-
ет реализации, создания модели на языке (посредством
37
блоков) Simulink.
Таким образом, мы, во-первых, заново представим опи-
сание модели в несколько иной форме, во-вторых, обсудим
базовые приемы моделирования в среде Simulink, что в
свою очередь понадобится нам в следующей главе, в кото-
рой приведена модифицированная модель с учетом дина-
мики износа основных фондов, задействованных в эконо-
мике (Vintage Capital Model). Идентификация модифици-
рованной модели, реализованной на платформе Simulink,
будет проведена уже с использованием параллельных вы-
числений соответствующего пакета.
2.1. Реализация модели экономики с производ-
ственной функцией CES в среде Simulink
В базовом варианте модели экономики из работы
[1] ВВП Y(t)определяется однородной производственной
функцией с постоянной эластичностью замещения (CES-
функцией) следующего вида (2.1)-(2.5).
Производственная функция (верхний уровень систе-
мы) задается следующим соотношением:
Y(t) = Y0"aL(t)
L0−b
+ (1 −a)K(t)
K0−b#−1
b
,(2.1)
где Y0, L0, K0– значения соответственно выпуска (ВВП),
труда и капитала в 2000 г., а 0< a < 1, b > −1– па-
раметры производственной функции CES для российской
экономики.
Динамика роста народонаселения определена по статисти-
38
ке эконометрической формулой
L(t) = 64.84e0.01124(t−2000).(2.2)
Взаимосвязь эффективного капитала и инвестиций задана
обычным макроэкономическим уравнением
Kt+1 = (1 −µ)Kt+Jt, K (0) = K0.(2.3)
Динамика импорта, экспорта, инвестиций и потребления
связаны с динамикой выпуска эконометрическими соотно-
шениями, полученными при анализе статистики 2000-2006
гг.: Et=δYt
πE
t,
It=ρ(1−δ)Yt
πI
t,
Jt=σ(1+ρ(1−δ))Yt
πJ
t,
Qt= ((1 −σ)(1 + ρ(1 −δ)) −δ)Yt
(2.4)
при относительных индексах цен на экспорт, импорт и ин-
вестиции, заданных следующими ниже эконометрически-
ми соотношениями:
πE(t) = aE+ (1 −aE)e−bE(t−2000),
πI(t) = 1 −aI(t−2000)2e−bI(t−2000),
πJ(t) = aJ+ (1 −aJ)(1 + t−2000)e−bJ(t−2000).
(2.5)
Данная система уравнений (2.1)-(2.5), описывающая
модель открытой экономики типа Рамсея, была идентифи-
цирована целиком (были определены ее параметры) на ос-
новании статистической информации с 2000 г. по 2006 г. на
основе сравнения близости макроэкономических показате-
лей, рассчитанных по модели с их статистическими анало-
гами. Для сравнения близости всех макропоказателей с их
39
статистическими аналогами использовалась свертка кри-
териев близости каждого из макропоказателей.
Реализация самой модели, ее идентификация произ-
водились с помощью средств MATLAB, глобальный по-
иск (перебор) был осуществлен с использованием техноло-
гии параллельного программирования (область значений,
идентифицируемых переменных, была разделена на рав-
ные части, после чего параллельные рабочие ветви вычис-
ляли значения функционала близости на выделенной ему
части области определения). В следующем разделе будет
показано, как эту же модель можно реализовать в среде
Simulink.
2.2. Базовые понятия и объекты Simulink
В литературе дано множество определений, что такое
Simulink, на наш взгляд верно следующее: Simulink – это
среда моделирования динамических систем – дифферен-
циальных уравнений посредством графических объектов.
Объекты в свою очередь можно объединять в подсистемы,
а подсистемы в систему.
При всех преимуществах работы с Simulink, пользова-
телю, не работавшему с данной средой, в первое время
может быть трудно в части понимания логики системы,
однако осознав принципы работы Simulink, он по достоин-
ству оценит все преимущества имитационного моделиро-
вания.
Ниже описаны типовые объекты, ситуации, которые
могут возникнуть при моделировании системы соответ-
ствующего уровня сложности. Приведем для начала реа-
лизацию верхнего вида системы уравнений (2.1)-(2.5) (см.
40
To Workspace5
J_simout
To Workspace4
Q_simout
To Workspace3
I_simout
To Workspace2
E_simout
To Workspace1
K_simout
To Workspace
Y_simout
K_t second term
L_t first term
Y_t
Q_t
uv
K_t
J_t
K_t
Y0
−1/b
L_t
J_t
Y_t
J_t
Y_t
I_t
Y_t
E_t
Y_t
J_t
K_t K_t
E_t
I_t
Q_t
Рис. 5. Верхний уровень системы
риc.5). Под термином “реализация” подразумевается реа-
лизация, т.е. расположение и взаимосвязь блоков в среде
Simulink.
41
Время. Следует помнить, что внутримодельное время яв-
ляется основополагающей частью системы, поэтому объ-
ект Clock доступен в любой ее части. Говоря языком про-
граммистов – “вызвать переменную” можно в любой части
модели, переместив блок “время” из библиотеки блоков
Simulink Library Browser->Common->Sources->Clock.
Реализация описанной уравнением на L(t)подсистемы
“труд” изображена на рис.6. Подсистема реализована с
помощью блока Clock, двух усилителей Gain1, которые
имеют вид треугольников, блока Math Function, реа-
лизующего возведение в степень, и блока Out, который
ответственен за вывод сигнала из подсистемы на верхний
уровень. На диаграмме верхнего уровня системы рис.
5выход сигнала из блока L_t обусловлен наличием в
подсистеме блока Out.
L_t
1
eu
Clock
64.84
0.01124
L_t
Рис. 6. Подсистема L_t, реализующая уравнение L(t)
Построив систему, изображенную на рис. 6, необходимо
выделить все ее элементы и выбрать в меню команду
Edit->Create Subsystem, в результате чего будет создан
блок “подсистема”, изображенный на рис.5как L_t. Ана-
логичным образом созданы все подсистемы pi_i, являю-
щиеся подсистемами систем J,E,I,Qс одним небольшим
1По своей сути блок Gain не отличается от операции умножения
на константу, т.е. операции, которая реализуется двумя блоками –
блоком умножения и блоком константы.
42
отличием в том, что в них использован блок In – вход,
необходимый для того, чтобы ввести в подсистему внеш-
ний сигнал Y_t.
Алгебраическая петля (от англ.Algebraic loop). Си-
туация алгебраической петли возникает в случае, когда
необходимо реализовать в Simulink уравнение вида yt+1 =
yt+ft, где ft– некая функция. В случае модели с непре-
рывным временем Simulink, начиная моделирование, ком-
пилируя модель, не может определить для нее начальные
условия. Данная проблема разрешается использованием
вспомогательной, т.е. искусственной подсистемы Atomic
subsystem. Это стандартный прием, описанный в техни-
ческой помощи (Help ->Simulink -> How Simulink Works
-> Algebraic Loops).
В случае с моделированием системы уравнений (2.1)-
(2.5) нужно помнить, что создаваемая система – система с
дискретным временем и использование Atomic Subsystem
приведет к возникновению ошибки. В системах с дискрет-
ным временем проблема Algebraic Loops решается исполь-
зованием блока Memory из раздела Discrete библиотеки
блоков. На рис. 7показано использование данного блока.
Блок Switch необходим для того, чтобы на нулевом ша-
ге системы (в момент времени, равный нулю) подать на
выход K_t фиксированное значение капитала, как это обу-
словлено уравнением K(t). В настройках блока Switch
определены его свойства, гарантирующие прохождение
сигнала, идущего ко второму порту при t= 0, в осталь-
ных случаях (при t > 0) – прохождение сигнала, идущего
к первому порту. Блок Memory вызывает запоздание сиг-
нала на один шаг, т.е. на первом шаге (в момент времени,
43
K_t
1
Switch
Memory
K0
1−mu
J_t
1
Рис. 7. Подсистема K_t, реализующая уравнение (2.3)
равный единице) к блоку Gain идет значение K0, которое
затем умножается на константу (усиливается коэффици-
ентом 1−µ), затем добавляется значение сигнала, идуще-
го от подсистемы J_t, после чего сигнал проходит через
Switch и подается на выход Memory.
44
Изменение значения константы в процессе модели-
рования. Довольно часто при работе с системой возника-
ет потребность динамического изменения значения некой
константы. Конечно, данную задачу можно решить с по-
мощью блока Switch, однако это приводит к загроможде-
нию модели, что может привести к снижению качества ее
восприятия. Поэтому в этом случае рекомендуется исполь-
зовать блок Matlab_fuction, т.е. блок, в котором на языке
mфайлов будут описаны условия, при которых происхо-
дит переопределение значений необходимых переменных.
При моделировании сценариев с использованием рис.
5для рассматриваемой нами системы уравнений (2.1)-
(2.5), необходимо в процессе имитации (работы системы)
переопределять значение константы µ, которая использу-
ется в блоке K_t (при моделировании “пессимистическо-
го” сценария после 2008 г. происходит изменение значения
константы µс -0.185 на 0.188). Для упрощения примера в
подсистеме на рис. 7заменен блок Gain со значением 1−µ
на равносильные блоки с константами 1и−µ, после че-
го параллельно с этой подсистемой на одном с ней уровне
размещен блок Matlab_function, на вход которому пода-
ется сигнал от блока Clock. Выходного сигнала (значения
функции) у блока Matlab_fuction нет, так как этот блок
выполняет сценарий, описанный в mфайле. Ниже показа-
но содержимое этого mфайла.
1function update_mu(Clock)
2if Clock==9
3block_mu = find_system(gcs, ’Name’, ’mu’);
4ModelName=block_mu{1};
5set_param(ModelName, ’Value’, ’mu2’)
6else;end
45
Структура файла update_mu.m очевидна, на шаге t= 9
происходит изменение значения блока константы mu. Сле-
дует отметить, что в качестве входных параметров в функ-
цию передается только сигнал от блока Clock, который
вообще говоря не несет в себе информации о системе. Од-
нако так как пространство имен, в котором исполняется
данная функция – это пространство самой модели, то с
помощью функции gcs (аналогичной функциям gcf иgca
в MATLAB) можно получить ссылку на объект работа-
ющей системы и на сам блок константы mu. Затем с по-
мощью метода set_param производится замена значения
этого блока.
Выше были описаны три технических момента (созда-
ние подсистемы, алгебраическая петля и изменение зна-
чения константы), реализация которых может вызвать
у начинающего пользователя небольшие затруднения, в
остальном модель системы (2.1) достаточна очевидна. В
следующем разделе будет показано, как управлять по-
строенной системой непосредственно из рабочей сессии
MATLAB с помощью mфайлов сценариев.
2.3. Управление моделью
Управление моделью Simulink из рабочей сессии
MATLAB выполняется непосредственно с помощью мето-
дов, которые доступны у объекта модели после ее загрузки
в рабочую область.
Ниже в листинге файла pessimistic_scenario.m по-
казана инициализация необходимых переменных (строки
2-6), затем – загрузка модели base_model в рабочую сес-
сию с помощью функции open_system (строка 8), после
46
чего – задание блоку mu значения µ1, которое по условиям
пессимистического сценария в 2009 г. изменит свое значе-
ние на µ2. Команда sim запускает имитацию модели.
1%------- pessimistic_scenario.m --------------
2%% Начальные значения и другие параметры-константы
3L0=64.8406; Y0=7305.6; gamma=0.01124; sigma=0.1346;
4delta=0.3511; rho=0.3532; beta=0.1569;
5a = 0.892; b= -0.81; mu1= -0.185; mu2=0.188;
6alpha=1.2; K0=Y0/alpha;
7%-------- Run Simulink model --------------------
8open_system(’base_model’);
9block_mu = find_system(gcs, ’Name’, ’mu’)
10 ModelName=block_mu{1};
11 set_param(ModelName, ’Value’, ’mu1’)
12 sim(’base_model’);
13 %------ Extract Simulation result ----------------
14 Ysim=Y_simout.signals.values;
15 Ksim=K_simout.signals.values;
16 Jsim=J_simout.signals.values;
17 Isim=I_simout.signals.values;
18 Esim=E_simout.signals.values;
19 Qsim=Q_simout.signals.values;
20 %---- End pessimistic_scenario.m ----------------
Следует отметить, что экспорт результатов имитации пе-
ременных в сессию MATLAB производится в формате
структуры, поэтому для удобства требуется переопреде-
ление переменных (строки 14-19).
Результаты имитации пессимистического сценария, ко-
нечно, совпадают с результатами, полученными исклю-
чительно средствами MATLAB в работе [1]. Однако, ис-
47
пользуя платформу Simulink, полученная модель выгля-
дит более компактно, отсутствуют многочисленные вспо-
могательные mфункции, наглядно представлена обратная
связь, присутствующая в модели, что, конечно, располага-
ет к более естественному восприятию ее физической сути.
Рассмотренный выше пример не претендует на широ-
кий охват всех возможностей Simulink, однако, по нашему
мнению, он достаточен для первого знакомства и работы
с моделями сопоставимой сложности. Для более глубокого
изучения приемов и методов работы с Simulink рекомен-
дуем ознакомиться с работой [31], в ней дано достаточ-
но подробное описание практически всех базовых блоков
Simulink, продемонстрированы основные приемы модели-
рования технических систем.
К работе с Simulink мы вернемся в разделе 3.2.1, где
с его помощью будет реализована модифицированная мо-
дель макроэкономической системы (3.1), для идентифика-
ции параметров которой мы воспользуемся средствами па-
раллельных и распределенных вычислений, а также будет
показано, как модель, созданная в Simulink, может выпол-
няться одновременно несколькими рабочими процессами.
2.4. Анализ сценарных и фактических данных
В целях сравнения результатов расчетов по модели со
статистикой результаты моделирования системы (см. рис.
5) были сопоставлены со статистическими данными за пе-
риод с 2000 г. по 2006 г., именно эти данные использовались
для идентификации модели в работе [1].
Напомним, что пессимистический сценарий развития с
2007 г. по 2020 г. в 2007 г. характеризовался нами в [1]
48
следующим образом:
1. Источник вовлечения производственных фондов из
наследства, доставшегося от советских времен, вот-
вот будет исчерпан.
2. Производственные фонды, используемые в производ-
стве, сильно изношены, доля производственных фон-
дов, которые скоро выйдут из строя и которые по-
этому надо срочно менять, в большинстве отраслей
народного хозяйства превысила 50%.
3. Прирост числа занятых, наблюдавшийся в период
оценки, в прогнозный период практически невозмо-
жен, начнет сказываться демографический кризис, в
который Россия попала в начале 90-х гг. XX в.
4. Считаем, что параметры a, b, α, δ, σ, ρ остаются по-
стоянными, принимающими определенные ранее зна-
чения для 2000-2006 гг.: a= 0.892, b =−0.81, α =
1.2, δ = 0.3511, σ = 0.1346, ρ = 0.3532, так что β=
0.1569.
5. Параметр µрезко меняет свое значение и экономи-
ческий смысл с 2009 г.: µ=−0.175 <0до 2008 г.,
а начиная с 2009 г. он становится положительным
µ=αβ =J0/K0= 0.188 >0и означает темп вы-
бытия мощностей вследствие износа. Предполагаем,
что источник, из которого в производство вовлека-
лись бесплатные производственные фонды, к началу
2009 г. иссякнет.
49
0 5 10 15 20
×104
0.7
0.8
0.9
1
1.1
1.2
1.3 Y stat and sim
0 5 10 15 20
×104
0
1
2
3
4
5K sim
0 5 10 15 20
1000
1500
2000
2500 J stat and sim
0 5 10 15 20
1000
2000
3000
4000
5000
6000
7000 I stat and sim
0 5 10 15 20
2000
3000
4000
5000
6000
7000 E stat and sim
0 5 10 15 20
4000
5000
6000
7000
8000
9000 Q stat and sim
Рис. 8. Результаты имитационного моделирования системы
уравнений (2.1)-(2.5) по пессимистическому сценарию
Графики на рис. 8демонстрируют сценарный расчет
по пессимистическому сценарию.
В заключение раздела считаем целесообразным срав-
нить прогноз развития экономики, полученный нами в ре-
зультате моделирования в предыдущей работе [1], с фак-
тически реализованной траекторией экономики России за
период 2007-2014 гг. На рис.9показано сравнение нашего
прогноза и фактической траектории ВВП, сложившейся
в период кризиса 2008-2009 гг. и в посткризисный период
2009-2014 гг.
Основной вывод, который можно сделать на основе
имитационных запусков системы, как нам кажется, заклю-
50
2000 2002 2004 2006 2008 2010 2012 2014 2016 2018 2020
4000
5000
6000
7000
8000
9000
10000
11000
12000
13000 Y stat and Y sim
Рис. 9. Сравнение траектории, полученной при моделировании
пессимистического сценария с фактической траекторий ВВП
Росиии за период 2000 – 2014 гг.
чается в следующем: несмотря на разразившиийся в 2008
г. международный финансовый кризис экономика России
системно была готова погрузиться в рецессию и без внеш-
него воздействия. Напомним, что работа была написана в
2006 г., а издана в 2007 г., т.е. прогноз был сделан на осно-
ве предкризисных данных. Основной причиной при этом
является моральное устаревание, износ производственных
фондов. Политика, проводимая руководством страны в
предкризисные и кризисный период – федеральные це-
левые программы модернизации жилищно комунального
хозяйства, здравоохранения – были направлены, как нам
кажется, на то, чтобы погасить те проблемные участки,
на которых износ основных фондов наиболее заметен для
населения. Ни в коей мере не умаляя значения этих целе-
вых программ, мы все же относим их к категории перво-
очередных, направленных на быстрые дивиденды в виде
благодарности избирателей.
К сожалению, выделить из экономических данных кри-
51
зисного и посткризисного периодов влияние международ-
ного финансового кризиса пока никому не удалось. Нам
представляется, что влияние международного финансово-
го кризиса на российскую экономику преувеличено. Ос-
новную роль играют внутренние причины. Простаивавшие
в 90-е гг. производственные мощности в настоящее время
загружены до экономически обоснованного уровня, поэто-
му дальнейший экономический рост невозможен за счет
дозагрузки имеющихся производственных мощностей при
снижении курса рубля, он требует увеличения объема са-
мих мощностей за счет нового строительства и закупок
фондообразующих продуктов.
В следующей главе рассмотрена модель производства,
которая явно учитывает распределение призводственных
мощностей по технологиям, а полученная производствен-
ная функция эндогенна.
52
III. Идентификация
эндогенной производственной
функции
Напомним, что в третьей главе работы [1] была предло-
жена и идентифицирована открытая динамическая модель
типа Рамсея для экономики России по статистическим
данным 2000-2006 гг. В модели производственный про-
цесс представлен производственной функцией, описываю-
щей зависимость выпуска валового внутреннего продук-
та (ВВП) от производственных факторов. Для описания
использовалась экзогенная производственная функция с
постоянной эластичностью замещения (CES-функция) с
двумя производственными факторами – трудом, измеряю-
щимся числом занятых в экономике, и эффективным капи-
талом, измеряющимся объемом задействованных в эконо-
мике производственных фондов в постоянных ценах 2000
г. Идентификация этой динамической модели экономики
позволила предсказать кризис в реальном секторе рос-
сийской экономики 2008 г. Идентифицированная модель
использовалась для сценарных прогнозных расчетов. Од-
нако эта модель в чистом виде не годится для детально-
53
го прогнозирования посткризисного развития, так как не
учитывает структурные изменения [2].
К счатью, модель экономики, позволяющая описать
структурные изменения в нашем распоряжении имеется
[21]. В этой модели производство описывается эндогенной
производственной функцией, представимой распределени-
ем производственных мощностей по технологиям. В дан-
ной модели производственная мощность у каждой произ-
водственной единицы задается максимально возможным
выпуском в текущий период времени, а технология – тру-
доемкостью, то есть нормой затрат живого труда на вы-
пуск единицы продукции. В качестве периода времени
здесь будем рассматривать календарный год, а продукцию
будем считать однородной. Суммарный объем выпущен-
ной продукции дает ВВП страны. Итак, в качестве базо-
вой модели экономики можно взять ту же самую модифи-
кацию модели Рамсея для открытой экономики, которая
была представлена в работе [1], но заменить экзогенную
производственную функцию CES на экзогенную производ-
ственную функцию, численно рассчитываемую на основе
динамики производственных мощностей. При этом вместо
рассмотрения динамики эффективных производственных
фондов будет рассмотрена динамика суммарной производ-
ственной мощности.
В соответствии с [21] считаем, что начальная производ-
ственная мощность и начальная трудоемкость у каждой
производственной единицы определяются в момент созда-
ния. В этот же момент определяется число рабочих мест
на производственной единице, которое в соответствии с ос-
новным предположением [21] не меняется с течением вре-
мени, то есть с момента создания до ликвидации произ-
54
водственной единицы это постоянное число рабочих мест
равно произведению начальной мощности на начальную
трудоемкость.
С возрастом производственная мощность падает с по-
стоянным темпом – темпом деградации, тогда трудоем-
кость должна с тем же темпом расти, чтобы сохранилось
число рабочих мест. Отсюда следует [21], что производ-
ственные мощности дифференцированы по моментам со-
здания (или возрасту), можно найти закон изменения про-
изводственных мощностей по времени и трудоемкости, ди-
намику суммарной мощности, динамику загрузки мощно-
стей трудовыми ресурсами, а значит, и динамику ВВП,
т.е. численно рассчитать производственную функцию, за-
дающую зависимость выпуска (ВВП) от производствен-
ных факторов – суммарной производственной мощности
и суммарного объема использованных трудовых ресур-
сов (труда). В [21] получено и аналитическое выражение
для данной эндогенной производственной функции, прав-
да, только для частного случая с постоянной долей вновь
созданных мощностей, характерного для режима сбалан-
сированного роста экономики. В общем случае производ-
ственную функцию можно рассчитать численно. Проце-
дура численного рассчета производственной функции и
процедура идентификации параметров производственно-
го блока экономической системы в системе MATLAB и
в пакете Simulink описана ниже по статистическим дан-
ным современной российской экономики. Выводы, пред-
ставленные в заключении разд. 2.4, привели нас к вопросу:
“А какие именно качественные характеристики производ-
ственных мощностей наиболее значимым образом влияют
на динамику роста нашей экономики?”
55
Основная задача, которую мы постарались решить –
это ответить на вопрос: “На сколько сильно мешает (или
помогает) нашей экономике “тяжелый хвост” в распределе-
нии производственных мощностей по технологиям, унасле-
дованный от CCCР и ранних 90–х 1, каким путем, по какой
траектории провести модернизацию, ускоренным (посред-
ством различных программ утилизации) или эволюцион-
ным (посредством естественного выбытия морально уста-
ревших мощностей и методов их управления)”.
Переводя качественные вопросы в количественные и
динамические характеристики, мы сформулировали сле-
дующие вопросы, на которые должна отвечать модель:
•Какими производственными мощностями обладала
экономика в 1990 г., 2000 г., 2012 г.?
•Какие значения параметров, характеризующие дина-
мику системы, имеют место в нашей экономике:
–какова скорость выбытия производственных
мощностей (темп деградации)?
1Несомненно, что наша промышленность, например ВПК, обла-
дает разработками, начало которых положено в CCCР и которые на
сегодняшний день являются перспективными и новаторскими, одна-
ко, к сожалению не эти разработки определяют сегодня динамику
производства в развитых и развивающихся странах, а относительно
новые технологии 90-х и 2000-х гг. Как показывает история развер-
тывания системы ГЛОНАС, например, наша проблема даже не в
том, чтобы вывести спутник на орбиту (хотя и в этом тоже наблю-
даются определенные трудности), а в том, какая компонентная база
используется в этом проекте (база, разработанная в иностранных
государствах в 90-х гг. и практически отсутствующая в России как
технология).
56
–каково значение коэффициента фондоемкости
нашей экономики?
–каков уровень наименьшей трудоемкости в на-
шей экономике?
Идентифицировав систему по перечисленным выше па-
раметрам, мы сможем ответить на следующие вопросы:
1. Достигли ли вновь создаваемые каждый год про-
изводственные мощности России уровня производ-
ственных мощностей, созданных в РСФСР?
2. Каким должен быть ежегодный объем инвестиций
для удвоения ВВП России за двадцать пять лет?
3. Каким будет профиль распределения производствен-
ных мощностей через двадцать пять лет в случае ин-
вестирования в производственные фонды объема, до-
статочного для удвоения ВВП?
4. Какой должен быть объем инвестиций для роста
ВВП в 6% годовых2?
5. Какими управляющими воздействиями на управля-
ющие переменные достичь перечисленных выше за-
дач? Что лежит за этими воздействиями?
За базовую модель для ответов на поставленные во-
просы мы выбрали модель процесса изменения производ-
2По мнению Джима О’Нила [25], Россия в блоке БРИКС отно-
сится к тому типу стран, для которых не нужен двузначный рост
ВВП
57
ственной мощности, изложенную в работе [21]. В формаль-
ном изложении формулировка модификации данной моде-
ли приведена в разд. 3.4, в разд. 3.1-3.3 приведены описа-
ния объектов, без которых понимание модели невозможно.
3.1. Распределение производственных мощностей
Основные производственные фонды дифференцирова-
ны по возрасту, их значения в постоянных ценах непо-
средственно определяются вектором прошлых инвестиций
в производственные фонды и темпами амортизации.
Производственные мощности также дифференцирова-
ны по возрасту и также определяются вектором инвести-
ций, но их значения не совпадают, поскольку производ-
ственные мощности измеряются в других единицах (они
показывают максимально возможный выпуск в год, в то
время как производственные фонды показывают объем
неамортизированных инвестиций).
Для пересчета стоимости капиталоемких продуктов
в инвестициях (новых основных производственных фон-
дах) в стоимость производимой продукции новыми про-
изводственными мощностями используется коэффициент
приростной фондоемкости. Кроме того, производственные
мощности и основные производственные фонды выбывают
с разными темпами: с темпом деградации для мощностей
и с темпом амортизации для фондов.
Амортизация производственных фондов зависит от
бухгалтерских коэффициентов амортизации, принятых
законодательными органами в данной стране, а деграда-
ция мощностей (максимальных выпусков) зависит от есте-
ственных процессов старения. По мере старения мощность
58
все чаще ломается, а рабочая сила простаивает в ожида-
нии окончания ремонта. При рассмотрении современной
российской экономики в данной работе мы абстрагируем-
ся от процессов возрастания мощностей по мере обучения
рабочих и менеджмента, которые имеют место в услових
бурного роста за счет инноваций (см., например, [32]).
Итак, обсуждение вопроса, связанного с динамикой
возрастного распределения производственных мощностей,
следует начать с рассмотрения вектора прошлых инвести-
ций.
1970 1975 1980 1985 1990 1995 2000 2005 2010
1
2
3
4
5
6
7
Billions of ROUBLES
RSFSR and Russian Federation investments, 2005 constant price
Рис. 10. Динамика инвестиции РСФСР и Российской Федера-
ции с 1970 г. по 2012 г., в постоянных ценах 2005 г. Данные
ООН и оценка авторов (в части доли инвестиций РСФСР в
объеме инвестиций СССР)
В целях сопоставимости данных вектор инвестиций до
1991 г. был очищен экспертным путем от объема инвести-
ций в союзные республики во времена СССР; таким об-
разом, представленный график на рис.10 отражает про-
шлые инвестиции именно РСФСР и Российской Федера-
59
ции. Несмотря на качественную информацию3, которую
несет в себе данный график инвестиций, для ответа на во-
просы, поставленные в начале главы, его не достаточно.
Для ответа на эти вопросы здесь представлена модель, в
которой используется не только динамика объема инве-
стиций, т.е. фондообразующего продукта, но и ее преоб-
разование в динамику производственных мощностей, т.е.
максимально возможных выпусков.
Структурой распределения производственных
мощностей будем называть функционал над областью
производственных мощностей в область положительно
определенной функции ϕ(t), заданной на промежутке
[0, T ], где T– максимальный возраст используемой в
производстве производственной мощности, при этом
RT
0ϕ(dt) = 1. (т.е. в экономике в момент времени tне
может быть задействовано больше производственных
мощностей, чем есть в наличии на данный момент. При
этом, ϕ(∆t)есть доля производственных мощностей в
экономике с возрастом из интервала [t, t + ∆t].
По сути, для дискретного случая величина загрузки
суммарной мощности PT
0ϕ(t)будет определять выпуск
системы (иными словами, ВВП системы есть совокупность
всех использующихся в данный момент времени производ-
ственных мощностей). Несмотря на кажущуюся очевид-
ность и важность такого показателя, официальной стати-
стики данного измерения, достоверных и, что самое глав-
ное, агрегированных данных по экономике России нет. По-
этому динамику распределения производственных мощно-
3В том плане, что провал графика в 90-е годы ярко иллюстрирует
ту геополитическую катастрофу, которая имела место с развалом
СССР.
60
стей по возрасту пришлось смоделировать, а параметры
этого распределения идентифицировать косвенным путем.
3.2. Моделирование износа производственных
мощностей в среде Simulink
Информация, содержащаяся в векторе инвестиций на
рис.10, не отвечает на следующие вопросы:
1. Как выглядит распределение производственных
мощностей, задействованных в экономике в конкрет-
ном году? Так как статистика ОЕСD ведется с 1970
г., то мы не видим на графике даже объем инвести-
ций в основные фонды в более ранние годы (а эти
средства тем не менее и в 2012 г. были задействова-
ны в производстве и давали в ВВП свою долю).
2. График динамики инвестиций не дает представления
о динамике профиля производственных мощностей.
Он не дает ответы на вопрос: “Какова, например, до-
ля производственных мощностей (и даже основных
фондов) возрастом 0-10 лет сейчас и пять лет на-
зад?”. А ведь для устойчивого экономического роста
именно самое современное оборудование должно да-
вать наибольший вклад в ВВП страны.
Для ответа на эти вопросы, рассмотрим сначала про-
цесс износа (устаревания) производственных мощностей
на простом примере. Предположим, что в момент времени
t=t0в экономике были задействованы производственные
мощности распределенные по возрасту, так как это показа-
но на левой части рис.11, где ось x– возраст, ось y– объем
61
мощностей, выраженный в денежном эквиваленте. Пред-
положим также, что те мощности, возраст которых более
пяти лет, не задействованы в экономике и утилизируются.
1 2 3 4
0
100
200
300
400
500
600
700
800
900 t=t0
1 2 3 4
0
100
200
300
400
500
600
700
800
900 t=t0+1
Рис. 11. Пример устаревания, изменения объема производ-
ственных мощностей, µ= 0.1. Ось x- возраст производствен-
ных мощностей, ось y- объем производственных мощностей
(выраженый в денежном эквиваленте)
Пусть процесс устаревания задан формулой
m(a+ 1) = m(a)·e−µ,(3.1)
где m(a+ 1) - объем производственных мощностей в сле-
дующем временном интервале, µ- некая константа (0,1),
процесс износа может быть задан и линейной функцией,
однако более распространенным является использование
экспоненциальной функции.
Очевидно, что с течением времени производственные
мощности устаревают, теряя свою стоимость и степень
влияния на ВВП.
62
По прошествии одного года модельного времени, те
мощности, которые были расположены в диапазоне 0-1 го-
да и так далее, переместились по оси возраста вправо, по-
теряв при этом объем согласно уравнению (3.1). При этом,
очевидно, что выражение (3.1) не позволяет оценить объем
мощностей с возрастом 0-1 года (так как это формула опи-
сывает износ, а не ввод новых мощностей). Очевидно, что
объем мощностей в диапазоне 0-1 на второй части рисунка
есть не что иное, как инвестиции производимые в эконо-
мике в течение года, деленные на коэффициент фондоем-
кости (коэффициент пересчета вновь созданных основных
производственных фондов во вновь созданные производ-
ственные мощности).
Так, например, если инвестиции не осуществляются в
течение пяти лет, то в рассматриваемой на рис.11 экономи-
ке не окажется основных средств для производства возрас-
том младше (менее) пяти лет, произойдет процесс полного
выбытия мощностей.
Как мы уже упомянули, статистическая информация
по распределению производственных мощностей и даже
основных фондов в российской экономике крайне скуд-
на. Поэтому для оценки профиля мощностей возрастом не
старше тридцати лет4, задействованных в экономике на
начало 2000 г., был использован следующий алгоритм:
1. Для начальной оценки профиля на 1970 г., может
быть положена некая константа, равная, например,
4В рассматриваемой нами модели было использовано допущение,
что мощности, возраст которых более 30 лет, не принимают участия
в создании добавленной стоимости. Как следствие, инвестиции в ос-
новные фонды, произведенные до 1970 г., на начало 2000 г.а не будут
задействованы в модели
63
объему инвестиций 1970 г., однако в целях нагляд-
ности был использован равномерно убывающий про-
филь (вектор) размерностью 30 (лет), значения ко-
торого убывают от объема инвестиций 1970 г. до 05.
2. Подставив начальное приближение, полученное на
первом шаге, последовательно была применена фор-
мула (3.1), при этом на каждом новом шаге в каче-
стве инвестиций i–го года использовалось i–е значе-
ние вектора инвестиций рис.10.
Результат работы данного алгоритма представлен на
рис.12, для сравнения приведены профили трех лет, эти
годы важны, с нашей точки зрения, для понимания глу-
бинных трансформаций, произошедших и происходящих в
экономике России:
1991 г. Окончание эры Советского Союза – трагическое
геополитическое событие на евразийском континенте
и в мире. По сути, профиль 1991 г. на рис.12 есть
то промышленное наследие, которое Советский Союз
оставил новой России.
2000 г. Начало второй декады России – наследство, ко-
торое Б.Н. Ельцин оставил новому президенту В.В.
Путину.
5В неявном виде данное допущение по профилю 1970 г. предпола-
гает, что после окончаний Второй мировой войны экономика Совет-
ского Союза была полностью разрушена, поэтому профиль основных
фондов на начало 1970 г. есть отражение тех инвестиций, которые
были произведены в период 1945-1970 гг. Советским Союзом (в част-
ности, РСФСР) в экономику.
64
2012 г. Наши дни – производственные мощности, пред-
ставляющие собой частично наследие СССР, России
при Б.Н. Ельцине и России при В.В. Путине.
0 5 10 15 20 25 30
0
2
4
6
8Capacity power. Legacy RSFSR to Russian Federation
M1991
M2000
0 5 10 15 20 25 30
0
2
4
6
8Capacity comparison. Legacy B.N. Eltsin left to V.V. Putin
M2000
M2012
0 5 10 15 20 25 30
0
2
4
6
8
Capital formation age in years.
Capacity comparison. RSFSR and Russia today.
M1991
M2012
Рис. 12. Сравнительные профили производственных мощно-
стей, задействованных в экономике России на 1991 г., 2000 г. и
2012 г.
Даже на основании представленных данных на рис. 12
без учета влияния параметров – при темпе износа µ= 0
и при коэффициенте фондоемкости b= 1 (речь о факти-
65
ческих значениях этих параметров пойдет в следующих
разделах) можно сделать следующие очевидные выводы:
•Провал производственных мощностей возраста 10-20
лет в профиле 2012 г. связан с кризисом 90-х гг.,
когда практически прекратилось инвестирование не
только в основные фонды, но и в социальные проек-
ты, человеческий капитал.
•В 2012 г. объем производственных мощностей воз-
растом 20-30 лет, оказывается большим не только по
сравнению с 2000 г., но и – с 1991 г.
•В 2012 г. объем производственных мощностей с воз-
растом 0-5 лет превышает аналогичный бакет (воз-
растной отрезок) 2000 г., и в целом сопоставим с соот-
ветсвующим объемом производственных мощностей
1991 г. с возрастом 0-5 лет.
•Рост доходов от высоких мировых цен на нефть 2000-
2008 гг. сказался серьезным образом не только на ро-
сте социальных расходов, повышении реального бла-
госостояния, но и на росте инвестиций в основные
фонды.
•Кризис 2008 г. привел не только к снижению ВВП, но
и падению объема инвестиций. Это видно из профи-
ля 2012 г. на участке производственных мощностей с
возрастом 2-3 года.
Реализация (построение) модели была проведена как
средствами MATLAB, так и средствами Simulink (как
именно, шаг за шагом описано ниже), и если вопросов о
66
том, как реализовать на языке m-файла MATLAB уравне-
ния (3.1), у начинающего пользователя MATLAB возник-
нуть не должно, то вопросы о том, как реализовать тоже
самое уравнение в среде Simulink, вполне могут возник-
нуть.
Техническое описание реализации процесса износа
средствами Simulink логично совместить одновременно с
описанием реализации процесса ввода новых мощностей,
и именно об этом пойдет речь в следующем разд. 3.2.1.
3.2.1. Реализация блоков износа и фондоемкости
в Simulink
Реализация модели износа производственных мощно-
стей с учетом их выбытия (вследствие достижения пре-
дельного возраста), формализующая уравнение (3.1), а
также процедура создания новых производственных мощ-
ностей, осуществлены средствами Simulink. В целях сбли-
жения модели с реальной экономической системой введем
дополнительно параметр фондоемкости.
Функция фондоемкости – функция, описывающая
зависимость между величиной инвестиций в экономику
(стоимости созданного инвестиционного продукта) и вели-
чиной новых производственных мощностей (потенциаль-
ного выпуска). Эта величина зависит от технологическо-
го уровня развития экономики, а также от величины кор-
рупции, эффективности системы распределения государ-
67
ственного и корпоративного капитала6:
I(t, b) = b·I(t)(3.2)
где I(t, b)– объем вновь созданных мощностей (добавка к
потенциальному выпуску), I(t)- объем произведенных ин-
вестиций в момент времени t(объем финансовых средств,
идущих на закупку инвестиционных продуктов), а b > 0
– параметр модели, обратный к коэффициенту прирост-
ной фондоемкости (в модели этот параметр предполагает-
ся постоянным на протяжении долгого периода времени),
а в нашей модели – подлежащий идентификации7.
В разд. 2.1 уже были описаны основные блоки и
приемы работы, используемые в Simulink, поэтому для
подсистемы износа, выраженной формулой (3.1), ограни-
чимся лишь иллюстрацией подсистемы с использованием
Simulink рис.13.
Назначение основных блоков следующее:
•Asset_profile_0 – вектор начального распределе-
ния мощностей, константа.
6Инвестиции частного бизнеса также зависят от уровня корруп-
ции, так как расширение бизнеса, подключение к сетям сопряжено
в нашей экономике с потерей части инвестируемых средств.
7Как это ни печально, но первый синоним который может воз-
никнуть в ассоциативном ряду с термином “фондоемкость” у рос-
сиянина средних лет это скорее всего термин “откат”. В целом, это,
конечно, не безосновательно, но в контексте данной модели термин
“фондоемкость” все же используется в более широком контексте, и
при идентификации модели область определения параметра b(об-
ратной величины к коэффициенту фондоемкости) была положена
на интервале (0.3,1).
68
investment
1−D T[k]
To Workspace
simout
> 0
Memory
1
eu
asset_profil_0
−mu
1/b
Floating Bar Plot
Crop last
element
Interpreted
MATLAB Fcn
Clock
Рис. 13. Подсистема, реализующая процесс износа и выбытия
(производственные мощности старше 30 лет не используются)
•Блок switch – переключатель вводит начальное
распределение в систему, после чего использует в
контуре только текущее значение распределения
мощностей, т.е. то, которое имеется в экономике на
i-м шаге моделирования.
•Блок memory предназначен для решения проблемы
algebraic loop.
•Блок interepted matlab function – блок, в кото-
ром можно напрямую обращаться к простым функ-
циям MATLAB . В данном случае в блоке записано
выражение u(1:end-1), т.е входящий сигнал лиша-
ется своего последнего элемента (имитация процесса
выбытия основных фондов).
•На следующем участке подставляется значение, рав-
ное инвестициям i–го года. Для этого используется
69
блок look-up table, заполненый значениями векто-
ра инвестиций, на вход которому подается значение
модельного времени из блока clock, таким образом
выходной сигнал из блока это i–е значение вектора
инвестиций (совпадающее с модельным временем).
•Учет влияния функции фондоемкости реализован в
виде блока gain, с определенным постоянным значе-
нием, по сути, представляющий умножение на кон-
станту b.
Размерности
В заключение вводной части следует сделать следующие
замечания, необходимые для дальнейшего построения мо-
дели:
•ВВП и производственная мощность имеют одинако-
вую размерность [рубли], поскольку мощность опре-
деляется как потенциальный выпуск;
•ВВП представляет собой некую часть суммарной
мощности, загруженную живой силой (далее будет
описан процесс загрузки фондов производственным
фактором – трудовыми ресурсами);
•Ii, инвестиции i-го года, есть не что иное, как про-
изводная фондов по времени ∆M/∆t, размерность
данной величины равна [рубли/год];
•Фондоемкость имеет размерность времени [год].
Произведение инвестиций i-го года на фондоемкость есть
величина размерности [рубли], т.е. фондообразующийся
продукт, использованный на инвестиции в i-м году.
70
3.3. Производительность
Сам по себе профиль производственных мощностей не
может быть использован для расчета выпуска системы.
Для того чтобы определить выпуск (ВВП) с использовани-
ем производственных мощностей, введем еще один показа-
тель, а именно функцию трудоемкости8.Функция тру-
доемкости представляет собой показатель эффективно-
сти, зависящий от возраста производственных мощностей,
задаваемый выражением
λ(a) = νeµa ,(3.3)
где λ– трудоемкость, µ– темп износа9(константа), ν
– наименьшая трудоемкость (константа). Экономический
смысл показателя трудоемкости очевиден: со старением
производственной мощности ее трудоемкость растет.
Иными словами, трудоемкость – функция, обратная
производительности мощностей, которая, в свою очередь,
характеризует объем произведенной продукции на мощно-
стях определенного возраста за определенный промежу-
ток вре-мени.
Формулой (3.3) введена функция трудоемкости, с дру-
гой стороны, трудоемкость есть отношение затрат труда (в
виде числа занятых) к мощности (т.е. норма затрат труда
на единицу мощности):
λ(a) = L(a)
m(a),(3.4)
8Только после определения функции трудоемкости, используя те-
кущее значение трудовых ресурсов, можно будет определить выпуск
системы.
9В некоторых источниках используется также термин – темп де-
градации (синоним).
71
где L(a)– предложение труда на мощности с возрастом a,
т.е. m(a), следовательно, размерность трудоемкости равна
[число занятых рабочих /рубли].
Задав в формуле (3.3) числовые значения νиµ, по-
лучим функцию трудоемкости. В рассматриваемой нами
модели, будем полагать коэффициенты ν,µиbстатиче-
скими, неизменными по времени10. Возрастающий харак-
тер функции трудоемкости имеет определенный экономи-
ческий смысл, а именно отражает тот факт, что относи-
тельно молодые мощности по сравнению с более старыми
для производства одного и того же объема продукции тре-
буют меньше трудовых ресурсов.
3.3.1. Загрузка производственных мощностей
трудом
Предложение труда в модели будем определять не как
прежде экспоненциальной функцией, а фактическими ста-
тистическими данными (использование эконенциальной
подгонки не позволяет учесть факт роста безработицы в
период кризиса 2008 г. (и, как следствие, высвобождение
производственных фондов)).
На этапе идентификации системы допущений о вли-
янии нелегальных миграционных потоков не использова-
лось (в виду отсутствия достоверной статистики), тем не
менее, на этапе сценарных расчетов в заключительном
разделе, некоторые предположения в миграционных по-
токах потребуются.
10Задача идентификации динамики коэффициентов ν,µиbявля-
ется темой отдельного исследования, но, имея ограниченный набор
статистики, данная задача будет плохо обусловленной.
72
Оценка возраста фондов, на котором достигается пол-
ная загрузка фондов (на основе труда)
Приравняв правые части выражений (3.3) и (3.4), име-
ем
L(a) = m(a)·ν·exp(µ·a).(3.5)
Уравнение (3.5) справедливо для некоторой производ-
ственной мощности возраста a, полностью используемой в
выпуске продукции. Рассмотрев данное выражение в дина-
мике, можно утверждать, что в момент времени tвозраст
amax, на котором достигается полная утилизация трудовых
ресурсов L(t)на векторе (3.6):
M(t, a)·ν·exp(µ·a),(3.6)
где a= 1 : 30 и есть возраст наиболее старой производ-
ственной мощности, используемой в выпуске (очевидно,
что трудоемкость данной мощности будет максимальной).
Значение величины amax вычисляют следующим обра-
зом:
1. В момент времени tизвестно значение вектора мощ-
ностей M(a), значение L, константы νиµопределе-
ны.
2. Программа вычисляет индекс вектора (3.6), на кото-
ром полностью расходуются ресурсы L.
Используя значение вектора amax, вычисляется выпуск
Y(t) =
amax
X
1
M(t, a).(3.7)
73
Реализация поиска amax средствами
Simulink была решена с использованием блока
interepted matlab function, на вход которому по-
давались значения блоков констант ν,µи значение
вектора look-up table, содержащего статистические
данные по числу занятых в экономике L(t).
Оценка возраста производственных мощностей, на ко-
тором достигается их полная загрузка (на основе цен
производителей и заработной платы)
Поиск наибольшего загруженного возраста производ-
ственных мощностей, изложенный выше, не единственный
способ определения amax. Ниже рассмотрим еще один спо-
соб, основанный на других предположениях.
Выпуск системы зависит не только от наличия произ-
водственных мощностей и трудовых ресурсов, но и от при-
были, имеющейся в наличии у “производителей” (необхо-
димой для перемещения трудовых ресурсов на более про-
изводительные ресурсы с повышением заработной платы).
Очевидно, что система при таком перемещении ресур-
сов не может работать себе в убыток, т.е. выплачивать
зарплату больше, чем получать выручки. И, наоборот, в
периоды спада спроса на производимую продукцию про-
изводители могут увольнять сотрудников с целью мини-
мизации убытков.
Условие безубыточности функционирования системы
можно записать в следующем виде:
P(t)
S(t)≤1,(3.8)
74
где P(t)– индекс цен потребителей, S(t)– индекс цен про-
изводителей, обе переменные являются интенсивными.
3.4. Формализация модели и ее идентификация
После того как шаг за шагом показаны подсисте-
мы, определены основные функции и ограничения, можно
строго сформулировать задачу идентификации и ввести
статистические данные, на основе которых определяют па-
раметры.
Постановка задачи идентификации
Идентифицировать параметры µ,b,νфункции выпус-
ка
Y(t) =
a(t)
X
i=1
mi(t, a),(3.9)
где a(t) = min{a1(t), a2(t)}есть наибольший возраст про-
изводственных мощностей, занятых в производстве выпус-
ка (может быть дробным, так как объем продукции изме-
ряется в постоянных ценах), a∈[0,30] лет.
Возраст a1(t)зависит от предложения труда L(t)и опре-
деляется алгоритмически – путем отыскания a(t)такого,
что труд L(t)расходуется на векторе M(t, a)·λ(t, a).
Возраст a2(t)определяется аналитически и равен выра-
жению 1
µln P
S·ν.(3.10)
Динамика производственной мощности. Совокуп-
ность mi(t, a)есть M(t, a)– суммарная производственная
75
мощность экономики в момент времени t, при этом
M(t, a) = Ψ (M(0, a), I(t), µ, b),
где I(t)– инвестиции, b·I(t) = dM (t)
dt .
Вспомогательный вопрос, связанный с фактором
укрепления/ослабления национальной валюты не рас-
сматривается, однако очевидно, что при росте экспорта,
при крепкой валюте, модернизацию проводить легче (за-
купая готовое оборудование, импортируя технологии из
развитых стран). В модели, рассматриваемой в данной
главе, будет предполагаться, что внешние факторы, т.е.
цены на производимую экономикой России продукцию,
остаются неизменными.
Статистические данные для идентификации
Идентификация функции выпуска (3.9) проводится на
временном периоде t= [2000 ...2012], на векторе Ystat(t)
(вектор ВВП в ценах 2005 г., источник – база данных
ООН11 [33]).
В силу того, что идентификация с использованием дан-
ных Ystat является плохо обусловленной, целесообразно
“улучшить ее” дополнительными статистическими данны-
ми. Для этих целей введем в рассмотрение новую стати-
стику – вектор CU (Capacity utilization), представляющий
собой отношение загруженных живым трудом производ-
ственных мощностей к общему объему [34, c.7]12 .
11Учет данных по основным макроэкономическим агрегатам ве-
дется с 1970 г. и приведен в постоянных цена 2005 г. на сайте
http://unstats.un.org/unsd/snaama/selbasicFast.asp.
12Указанные данные, по мнению самих сотрудников Всемирно-
76
Критерий качества идентификации
Как и ранее в работе [1], нами предлагается использо-
вать критерий максимума целевой функции F, являющей-
ся комбинацией коэффициента Пирсона и коэффициента
Тейла:
F(Model(µ, b, ν ), Statistic)→max
µ,b,ν ,(3.11)
где Model – вектор [Y model, C Umodel], полученный в
процессе моделирования, а Statistic – вектор статистики
[Y statistic, C Ustatistic].
3.4.1. Идентификация системы
Задача идентификации была независимо решена с ис-
пользованием двух платформ MATLAB и Simulink (на ос-
нове одних и тех же статистических данных). Ввиду ре-
сурсоемкости задачи в обоих случаях был использован
подход, основанный на распределенных вычислениях (был
использован Parallel Computing Toolbox), технические осо-
бенности реализации распределенных вычислений приве-
дены в конце настоящего раздела 3.4.4. В разделе 3.4.2
приведены результаты полученной идентификации и ана-
лиз полученных результатов.
го банка, являются оценочными и не являются предметом офи-
циальной статистики. Также следует помнить, что сами объек-
ты основных фондов могут различаться (в процитированном от-
чете это, скорее всего, исключительно загрузка промышленно-
го производства, в рамках настоящей работы производственные
мощности – результат инвестиций не только в основные фонды
промышленности). Версия на русском языке доступна по ссылке
http://hdl.handle.net/10986/16691.
77
3.4.2. Результаты идентификации
По причине нелинейности задачи идентификация си-
стемы была произведена прямым поиском (перебором)
по следущей сетке: µ= [0 ...5%], b = [0.2...0.8], ν =
[0.1...max(P/S)]. Результаты идентификации на разных
сетках (n)при использовании различных платформ пред-
ставлены ниже. Вычисления проведены в параллельном
режиме на двухядерном процессоре.
n µ b ν F Matlab
10 3.22% 0.41 2.14 1.8388
50 3.69% 0.45 1.96 1.8357 2 min
100 4.76% 0.49 1.94 1.9419 19 min
200 5.00% 0.52 1.84 1.9430 2 h 43 min
300 9.07% 0.80 1.61 1.9562 8 h 20 min
Траектории ВВП (Y(t)) и загрузки мощностей (CU) на
основе идентифицированных параметров (на сетке n=100)
представлены на рис.14.
Обсуждение результатов идентификации
Результат идентификации нельзя назвать впечатляю-
щим (по критерию близости графиков на рис.14), в то же
время эти графики построены на основании максимума
критерия близости.
Причин, по которым графики не могут на 100% сов-
падать со статистическими значениями, можно выделить
как минимум две. Во-первых, построенная эндогенная мо-
дель роста в принципе не может описать особенности ди-
78
2000 2005 2010
15
20
25
30 GDP(t) identified and statistic
Y optimal
Y stat
2000 2005 2010
0.65
0.70
0.75
0.80
0.85 CU(t) identified and statistic
CU optimal
CU stat
Рис. 14. Графики Y(t)иCU (t), построенные на основе иден-
тифицированных параметров, и графики статистических дан-
ных, используемых при идентификации
намики ВВП (вследствие того, что спад 2008 г. обуслов-
лен не только внутренними факторами, но и внешними).
Во-вторых, качество статистических данных не достаточ-
но точное:
•вектор статистических данных по ВВП не учитывает
объем теневой экономики13;
•вектор статистики по CU формально отражает ин-
декс загрузки промышленного производства.
В целом, однако считаем, что модель “схватывает” ос-
новные особенности роста ВВП и загрузки мощностей:
•рост ВВП вплоть до 2008 г., затем торможение и сно-
ва рост;
•рост индекса загрузки мощностей, спад и снова рост.
13К влиянию данного фактора на модель вернемся в следующем
разделе.
79
2000 2002 2004 2006 2008 2010 2012
20
30
40
50
60
70
a1
a2
Рис. 15. Графики возраста последней производственной мощ-
ности из загруженных (a1– слева, a2– справа)
Отдельно стоит прокомментировать поведение графи-
ков, отражающих максимальный возраст задействованной
в ВВП мощности рис. 15, рассчитанных на основании двух
различных гипотез.
Поведение графика a1, очевидно, отражает тот факт,
что на протяжении 2000-2007 гг. происходило постоян-
ное увеличение максимального возраста производствен-
ных мощностей, задействованных в производстве (в вы-
пуске), в 2008-2009 гг. снижение возраста, что связано с
недогрузкой, вызванной увеличением безработицы. Рост
максимального возраста в 2009-2012 гг. связан с выходом
загрузки мощностей на предкризисный уровень.
Поведение графика a2не столь очевидно. Во-первых,
стоит отметить, что график a2не пересек график a1(мак-
симальный возраст производственной мощности, рассчи-
танный на основании формулы (3.10), находится выше гра-
фика a1, следовательно, влияние факторов, лежащих в
основе падения a2, не сказывается на выпуске достаточ-
но сильно). Во-вторых, устойчивый нисходящий характер
графика говорит о том, что в течение декады наблюдал-
ся устойчивый рост уровня зарплат, иными словами, рост
80
ВВП в этом же периоде приводил не только к увеличению
роста прибыли работодателей, но и к реальному росту бла-
госостояния рабочих14.
В то же время рост заработной платы в модели пред-
полагает увеличение отдачи; рост зарплаты определен-
но должен сопровождаться переводом рабочего с более
старых производственных фондов (с большей трудоемко-
стью) на менее старые фонды (с наименьшей трудоемко-
стью), т.е. перевод рабочего с увеличением зарплаты дол-
жен сопровождаться увеличением производительности15.
Оптимальные параметры – начальное приближение
для сценарных расчетов
Найденные и указанные выше оптимальные значения
параметров модели могут быть использованы не только
для анализа самой системы, но и для целей моделирования
сценариев развития. Для этого необходимо, используя эти
параметры, восстановить значение мощности Mпо состоя-
нию на 2012 г. Ниже на рис. 16 представлены два профиля
мощностей – 1991 г. и 2012 г. с учетом коэффициентов b
иµ(т.е. с учетом идентифицированной фондоемкости и
коэффициента деградации (реальная, а не номинальная,
как на рис. 12, оценка мощностей)).
14Данное утверждение может быть проверено историческим отно-
шением реального ВВП к реальной средней зарплате на число заня-
тых (политика дестимулирования зарплат в конвертах).
15К сожалению, исследование этого вопроса: “На сколько рост ре-
альных заработных плат прошедшей декады сопровождался увели-
чением производительности ?” – выходит за рамки настоящего иссле-
дования, а также то, какие категории граждан (трудящихся) полу-
81
0 5 10 15 20 25 30
0
0.5
1.0
1.5
2.0
2.5
3.0
M1991
M2012
Рис. 16. Мощности 1992 г. и 2012 г., построенные на основе
идентифицированных параметров b= 0.41 иµ= 4.5%
В заключение раздела результатов идентификации хо-
телось бы отметить ряд очевидных и подтвержденных ста-
тистикой и расчетами выводов.
Неравномерная загрузка мощностей. В основу моде-
ли было положено предположение об идеальной за-
грузке мощностей, т.е. загрузка более старой мощ-
ности производится после полной загрузки текущей
мощности. Конечно, в реальности это недостижимо
и труд распределен не оптимально. Таким образом,
частично труд размещен и на “тяжелом хвосте” ста-
рого оборудования с возрастом 20-30 лет, который
в РСФСР занимал меньшую долю в общем объеме
мощностей M16.
М2012, просадка 10 - 20. Технологии, возникшие в
чили наибольшую выгоду от произошедшего и происходящего роста.
16Политику правительства, проводимую в виде программ утили-
зации, расцениваем крайне положительно не только с точки зрения
стимулирования продаж, но и в качестве крайне полезной меры по
увеличению средней производительности труда за счет сокращения
“тяжелого хвоста”.
82
мировой экономике в период 1990–2000 гг., в целом,
упущены Россией 17. В 1991 г. производственные
мощности возраста 10-20 лет присутствовали в
большем объеме (технологии 1970 – 1980 гг.).
М2012=M1991 на интервале 0 - 10 Подающим на-
дежды на возможность дальнейшего роста считаем
тот факт, что инвестиции последнего десятилетия
привели к тому, что Россия практически сравнялась
по уровню новых мощностей возраста 0-10 лет с
РСФСР.
Таким образом, можно считать, что на вопрос № 1,
сформулированный нами на стр. 57, мы ответили.
3.4.3. Оптимальность идентификации
Полученные результаты идентификации представляют
непосредственный интерес как с точки зрения их абсолют-
ных значений, так и с точки зрения возможности проведе-
ния сценарных расчетов (см. разд. 3.4.5). При этом доста-
точно важным является вопрос о стабильности получен-
ного решения.
В качестве оптимального решения нами выбрано ре-
шение, полученное на сетке n= 100, по причине того,
что качественно значение Fсравнимо со значениями, по-
лученными на более плотных сетках, и потому что пара-
метр µ, по нашему мнению, отражает среднюю скорость
17На вопрос о том, что делать с использованием технологий этого
периода в настоящее время, мы бы ответили, что лучше не терять
время на воссоздание этих технологий сейчас (проще импортировать
их в готовом виде), а сосредоточиться на новейших технологиях,
создаваемых в наши дни.
83
выбытия, а не ускоренную (µ= 0.08%), полученную при
n= 200,300. Одним из наиболее очевидных и наглядных
приемов исследования поведения функции вблизи ее экс-
тремального значения является построение линий уровня
поверхности целевой функции. Так как используемый на-
ми критерий оптимальности является функций трех пере-
менных (µ, b, ν), то необходимо рассмотреть три графика
рис. 17.
mu
nu
Contour plots (mu,nu) at optimal b
0.01 0.02 0.03 0.04
5
10
15
nu
b
Contour plots (b,nu) at optimal mu
0.3 0.4 0.5 0.6 0.7
0
2
4
6
8
10
b
mu
Contour plots (mu,b) at optimal nu
0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05
0.3
0.4
0.5
0.6
0.7
0.8
Рис. 17. Линии уровня для целевой функции F(µ, b, ν)(3.11),
маркер ◦– максимум функции двух переменных, при фикси-
рованном (оптимальном) значении третьего параметра, маркер
– визуальный экстремум
Линии уровня на рис.17 (µ, ν)и(b, ν)имеют сильно вы-
раженный характер хребта, обе эти поверхности (функции
84
двух переменных) содержат в качестве одной из перемен-
ных параметр ν.
Очевидный экономический смысл данному явлению
дать довольно сложно. Так, например, при ν= 1 значения
модельной величины Y(t)оказываются в несколько раз
больше значений статистики (вектор a1при этом значи-
тельно превышает 30 лет), при ν= 5 модельная величина
Y(t)оказывается меньше статистики (вектор a1при этом
значительно не превышает 10 лет). При ν= 10 (максимум
на диаграмме слева) значения a1не превышают 5 лет, при
этом значения a2становятся отрицательными. Следует от-
метить тот факт, что на графике (b, ν)идентифицирован-
ный параметр и максимум в окрестности µopt совпали.
В целом, параметр νсоздает два локальных экстрему-
ма (относительно переменной µиb) для функции F(µ, b, ν)
– вблизи значения ν= 2 иν= 11 при фиксированных bи
µ.
Относительно характера линий уровня
F(µ, b, νoptimal)можно сделать следующие выво-
ды:
1. Параметр µopt = 4.55% является качественно прием-
лемым для такого рода моделей (Д.Форрестер [20]
принимал в своих моделях темп деградации рав-
ным 2.5%, устав ФРС США, например, принимает
естественным уровень инфляции равным 3%, кото-
рый можно также связать с неким обобщенным тем-
пом деградации). То, что идентифицированный на-
ми показатель µпревышает эти абсолютные значе-
ния, считаем вполне нормальным, так как условия
функционирования экономики в 90-х гг. вполне мог-
ли привести к ускоренному износу основных фондов
85
(что нашло отражение в параметрах идентифициро-
ванных на сетках n= 200,300).
2. Существенное отличие (0.20) для bopt = 0.40 от значе-
ния b, находящегося на вершине явно выраженного
максимума b= 0.60, может быть объяснено факто-
ром “теневой экономики”18 , которая по оценкам [35]
достигала в экономике России уровня 50-60% ВВП
в начале и порядка 30-40% в конце декады. Иными
словами, для поиска оптимального решения модель
использует качественно ложные данные в части ВВП
(Y)и “формальные” данные по инвестициям (без ис-
кажений теневым сектором). В итоге, мы расценива-
ем точку (µ= 0.02, b = 0.6) как максимум, на кото-
ром достигается оптимальный выпуск Y, т.е. разрыв
в коэффициенте bи разрыв в учете теневой экономи-
ки можно рассматривать как синонимы.
Выход производства из теневой экономики (из нефор-
мального сектора) в легальный сектор многими автора-
ми рассматривается как основной источник роста в бли-
жайшие пять-десять лет, особенно на фоне обостривших-
ся внутренних и внешних проблем в осуществлении про-
изводственных инвестиций (в период работы над матери-
алом) – это и проявившаяся стагфляция, и резкий удар
внешних рынков, вызванный реакцией на вхождение Кры-
ма в состав России, и последовавшая за этим череда вза-
имных санкций, и падение уровня рубля, снижающее воз-
можности импорта фондообразующих продуктов, и паде-
ние цены на экспортируемую продукцию, снижающее до-
18Теневая экономика использует официальные фонды, но ее вы-
пуск не входит в официальную статистику ВВП.
86
ходы бюджета и возможности государственного инвести-
рования.
Вывод 20% теневой экономики в формальный сектор
может давать 2% роста ВВП ежегодно на протяжение де-
сяти лет (таким образом, значение ◦= (µ1, b1)будет посте-
пенно мигрировать к значению = (µ2, b2)). Обсуждение
потенциала роста за счет теневой экономики частично опи-
сывалось в работе [36]. “Рецепт” построения этого экстре-
мума очевиден (но чрезвычайно трудно достижим):
•Ратификация Российской Федерацией ст. 20
Конвенции ООН против коррупции (ст.20
Незаконное обогащение)19 .
•Продолжение политики наметившейся деофшориза-
ции.
•Продолжение политики снижения наличного оборо-
та денежных средств (параллельный запуск нацио-
нальной платежной системы).
Значение экстремума ◦= (µ1, b1)является глобаль-
ным максимумом при фиксированном ν, значение кото-
рого также не может изменяться стремительно (на его из-
менения, существенные для значений выпуска, требуют-
ся десятилетия). Очевидно, что программа модернизации,
19Мы надеемся на то, что события 2014 г. будут являться одним
из стимулов ратификации этой конвенции, для того чтобы на долгое
время снизить потенциальную социальную напряженность, вызыва-
емую этим социальным недугом в общесте (так как забыть то, что
спуск аналогичной пружины социального напряжения в Украине по-
служил формальным для внешних источников силы “усилителем”,
позволившим превратить государственность в руины, уже нельзя).
87
продолжаемая сейчас Президентом России (сформулиро-
ванная как удвоение в течение десяти лет числа высоко-
производительных рабочих мест), – не что иное как уве-
личение параметра νпри одновременном увеличении доли
современных мощностей, но, как показывает наша модель,
проблема не столько в отсутствии мощностей, сколько в
отсутствии трудовых ресурсов, способных загружать дан-
ные мощности20.
3.4.4. Использование Simulink в различных режи-
мах параллельных вычислений
Итоговая модель, реализованная средствами Simulink,
имеет следующий вид (см. рис 18).
Большинство блоков модели, их предназначение бы-
ло показано выше. Сама модель доступна по ссылке
bookhomepage.
Сравнение производительности (времени расчета) мо-
дели, реализованной на платформе MATLAB, с моделью,
реализованной в Simulink, показало различие в десятки
раз. Время работы MATLAB оказалось меньше – анало-
гичное соотношение сохранилось и при использовании рас-
20В данном контексте проводимую пенсионную реформу, одним
из положений которой является стимулирование продолжения тру-
довой деятельности после достижения пенсионного возраста, наряду
с продолжающейся политикой стимулирования рождаемости можно
рассматривать как попытку задержать высококвалифицированные
предпенсионные кадры на рабочих местах до периода начала выхода
на работу детей, число которых возросло в какой-то мере благодаря
программе материнского капитала (начавшей действовать с 1 января
2007 г.).
88
Рис. 18. Модель экономического роста, рассмотренная в данной
главе. Реализация в Simulink
пределенных технологий.
Сказать однако, что на основе одного сравнительного
примера Simulink не стоит применять для моделирования
систем, которые можно реализовать программными сред-
ствами MATLAB, однозначно нельзя по нескольким при-
чинам:
•реализация модели средствами Simulink могла ока-
заться неоптимальной, и ряд блоков или подсистем
можно оптимизировать и изменить (для этой задачи
в Simulink есть средства отладки - профилирования);
•моделирование ряда физических задач намного
быстрее и надежнее можно реализовать именно в
среде Simulink с помощью библиотеки готовых бло-
ков, являющихся виртуальными осциллографами,
89
источниками разного рода сигналов, трасформато-
рами, узлами и средствами управления;
•самая главная причина, почему мы уделили описа-
нию построения модели в Simulink так много внима-
ния – это именно отсутствие практических примеров,
иллюстрирующих приемы создания таких моделей в
Simulink.
Стоит также отметить, что помимо недостатка вни-
мания к среде Simulink как средству моделирования
экономических процессов, описанию особеностей работы
Simulink в распределенных (параллельных) режимах уде-
лено также чрезвычайно мало внимания в работах на
русском языке, хотя пользователи русскоязычного фору-
ма www.exponenta.ru довольно часто задают вопросы по
данной тематике. Компания MathWokrs в разделе вебина-
ров на русском языке разместила на данный момент толь-
ко один вебинар, посвященный распределенному исполне-
нию моделей Simulink21 .
По мнению нашего авторского коллектива, технология
применения средств распределенных вычислений, пред-
лагаемая в данном вебинаре (по сути, иллюстрирующем
штатную функциональность Simulink в части распреде-
ленных вычислений) не решает такой методической зада-
чи, как приобретение пользователем знаний о механизмах
MPI, и, скорее, зажимает его в предопределенные рам-
ки конфигурирования модели на уровне интерфейса, за-
ставляя подгонять свою модель под имеющийся функци-
онал Simulink (как, например, необходимость реализовы-
21http://matlab.ru/videos/mnogozadachnoe-vypolnenie-modelej-
simulink-na-mnogoyadernyh-processorah .
90
вать отдельные наиболее ресурсоемкие подсистемы в мо-
дели (файлы mdl) Simulink).
Считаем однако, что ряд комментариев касательно осо-
бенностей запуска моделей Simulink в различных парал-
лельных режимах будет полезен пользователям, начина-
ющим использовать Simulink и сталкивающимся с необхо-
димостью сокращения времени расчетов.
Модель расчета πв Simulink
В качестве примера, на основе которого будут про-
демонстрированы несколько приемов ускорения расчета,
был использован уже знакомый многим читателям при-
мер расчета числа π:
π=
1
Z
0
4
1 + x2dx. (3.12)
Детально пример параллельного вычисления значения
числа πрассмотрен в стандартной документации пакета
Parallel compuring toolbox и работе [1]).
На рис.20 средствами Simulink реализована формула
(3.12). Модель является дискретной и составлена из базо-
вых объектов самого Simulink, без использования блоков
из его специализированных пакетов.
Точность вычисления числа πзависит от параметра
N, времени моделирования, этот параметр можно зада-
вать программным образом, используя свойство модели
StopTime. Каким именно образом это можно использовать
в параллельном режиме показано ниже.
91
Рис. 19. Модель Simulink для вычисления значения числа π
(Pisim.mdl)
Очевидно, что при разном значении константы Nвре-
мя расчета модели увеличивается (см. листинг файла про-
граммы запуска модели).
Поставим задачу следующим образом: запустить мо-
дель Pisim.mdl на разных рабочих, с разным значением
параметра N(и соответственно времени моделирования).
Pmode и Simulink
Несмотря на то, что режим pmode является, по нашему
мнению, средством для первоначального знакомства с воз-
можностями параллельного программирования – его мож-
но использовать и для расчета моделей Simulink с исполь-
зованием разных рабочих с разными параметрами моде-
лирования. Так, например, в файле сценарии picalc1.m
производится вызов модели Pisim.mdl, рис. 20 – значение
функции labindex, а следовательно, и значение перемен-
ной N, устанавливающее предельное время моделирова-
92
ния, будут разными.
Листинг файла сценария picalc1.m
1 N=la b i n dex ∗100;
2 s lC ha ra cte rE nco di ng ( ’ windows −1 252 ’);
3 open_system ( ’ Pi_sim . mdl ’ ) ;
4 set_param ( ’ Pi_sim ’ , ’ StopTime ’ , num2s tr (N ) ) ;
5 sim ( ’ Pi_sim ’ ) ;
6 s im ou t . d at a ( end )
В первой строке происходит определение параметра
Nуже известным образом с использованием функции
labindex; вторая строка устанавливает кодировку (эта
техническая особенность запуска моделей подробно описа-
на на сайте - форуме exponenta), третья строка открывает
модель, четвертая строка устанавливает предельное вре-
мя моделирования, следующая строка запускает модель
на счет, и последняя строка считывает значение результа-
та моделирования модели. Так как данный файл-сценарий
будет выполняться на разных рабочих, то и значение па-
раметра Nбудет разное.
Включив режим pmode в коммандной строке общей для
обоих рабочих, необходимо вызвать файл picalc1.m. В ре-
зультате этого файл-сценарий исполнится на обоих рабо-
чих, соответственно одновременно будет загружена в ра-
бочие области рабочих одна и та же модель Simulink, но
значению параметра StopTime будут установлены разные
значения. Результат вызова сценария picalc1 представлен
на рис. 20.
93
Рис. 20. Результат исполнения файла-сценария picalc1, содер-
жащего вызов модели Simulink в режиме pmode
Spmd и Simulink
К сожалению, при вызове Simulink моделей в режиме
spmd, по крайней мере в релизе R2014a приходится приме-
нять некоторые ухищрения в целях преодоления ограни-
чений (см. документацию spmd->Tips->Liminations)22 .
Суть изменений, которые необходимо внести в синтак-
сис файла-сценария, заключается в том, что вызов модели
и ее запуск осуществляется не в явном виде внутри окру-
жения spmd, а через вызов функции, внутри которой уже
происходит вызов модели и установка необходимых пара-
метров (в качестве переменной на вход функции переда-
ется значение labindex).
Ниже представлен сценарий вызова функции picalc
22Examples of some other functions that violate transparency are
evalc, evalin, and assignin with the workspace argument specified as
’caller’; save and load, unless the output of load is assigned to a variable.
94
из окружения spmd:
poolobj = parpool(2)
spmd
x=picalc(labindex)
end
delete(poolobj)
при этом сам текст вспомогательной функции picalc
приведен в листинге ниже.
Листинг файла сценария picalc.m, вызываемого из окружения
spmd и исполняемого в рабочей области рабочего процесса
1 f u nc t i on x=p i c a l c ( y )
2 N=y ∗100;
3 sl Ch ar ac te rE nc odi ng ( ’ windows −125 2 ’) ;
4 open_system ( ’ Pi sim . mdl ’ ) ;
5 set _pa ram ( ’ P is im /Gain ’ , ’ Gain ’ , num2 str (1 /N) ) ;
6 set _pa ram ( ’ P is im /Gain1 ’ , ’ Gain ’ , n um2str ( 1/N ) ) ;
7 set _pa ram ( ’ Pisim ’ , ’ StopTime ’ , num2 str (N ) ) ;
8 sim ( ’ Pisim ’ ) ;
9 x=si mo ut . d at a ( en d )
У файла picalc.m есть особенность, которая отличает его
применение от вызова модели в режиме pmode; эта особен-
ность заключается в том, что без явного указания значе-
ния блокам Gain иGain1 (пятая и шестая строки листинга)
модель исполняться не будет, несмотря на то, что значение
переменной Nопределено выше во второй строке.
В результате вызова функции x=picalc(labindex)
внутри окружения spmd, в рабочую область будут выве-
дены значения переменных x, определенные на разных
95
рабочих:
Lab 1:
x =
3.1516
Lab 2:
x =
3.1466
Parfor и Simulink
В целом, режим вызова моделей Simulink в окружении
режима parfor не отличается от рассмотренного выше
вызова функции picalc из окружения spmd. Отличие
заключается в том, что вместо labindex используется
значение номера шага, которое, в свою очередь, зависит
от того, какой рабочий его исполняет:
poolobj = parpool(2)
parfor i=1:2
x=picalc(i)
end
delete(poolobj)
Описание режимов работы Simulink в распределенных
режимах можно было привести и в первой части работы,
однако нам хотелось, чтобы пользователи, не знакомые с
особенностями работы в Simulink, шаг за шагом освоили
базовые приемы и технику работы и уже в заключение
познакомились с технологией ускорения расчетов.
Мы полагаем, что приведенные выше примеры ис-
пользования режимов pmode,spmd,parfor будут полез-
96
ны в первую очередь тем многочисленным пользователям
Simulink, практические задачи которых связаны с обработ-
кой их моделями большого набора параметров (большой
области определения модели) и поиском экстремальных
или, наоборот, стационарных режимов.
В следующем разделе 3.4.5 будет изложена, по нашему
мнению, одна из наиболее интересных частей работы, а
именно применение идентифицированной модели к задаче
сценарного моделирования.
97
3.4.5. Сценарные расчеты
Идентифицированные параметры модели, полученные
в разделе 3.4.2, представляют собой снимок системы. Ре-
зультатом идентификации является также построенный
на основании полученных параметров профиль производ-
ственных мощностей M2012.
Теперь, используя начальное приближение по M2012 и
предположения (сценарии развития) относительно измене-
ний параметров bиµ, можно провести расчет прогнозных
значений суммарного выпуска (ВВП) и динамики суммар-
ного объема мощностей M.
Все рассматриваемые ниже сценарии будут просчита-
ны на периоде c 2014 г. до 2035 г. (≃20 лет). В сценарных
численных расчетах по идентифицированной модели мы
заведомо не используем больший срок (50–100 лет), по той
причине, что не учитываемый здесь научно-технический
прогресс (НТП) на таких интервалах времени заведомо
окажет значительное влияние на рассматриваемый про-
цесс.
В то же время считаем, что период прогноза на два-
дцать лет является компромиссным и в плане устойчиво-
сти системы на таком промежутке, и в плане того, что
двадцать лет — срок, достаточный для проведения соот-
ветствующих экономических, институциональных и поли-
тических реформ (необходимых для управления парамет-
рами µ,ν,b).
98
Сценарий № 1, базовый (пассивный сценарий)
1. Норма инвестирования, отношение инвестиций
(без учета фондоемкости к ВВП данного года) –
будем предполагать, что Правительство и част-
ные предприятия продолжат тренд второй половины
2000-х и данное отношение будет составлять 22%23.
2. Коэффициент приростной фондоемкости 1/b –
будем предполагать, что технологические условия и
отношение к коррупции, и сложности с инсталляцией
и расширением для частного бизнеса не изменятся,
следовательно, обратная величина к коэффициенту
приростной фондоемкости b=bid = 0.45.
3. Темп деградации µ– остается неизменным на есте-
ственном уровне 3% (полученным при идентифика-
ции).
4. Предложение труда L(t)– будем предполагать,
что политика стимулирования рождаемости24, повы-
шение пенсионного возраста приведут к тому, что
предложение труда будет постоянным на протяже-
нии ближайших двадцати лет и равно 75 млн.
23Заметим, однако, что величина инвестиций порядка 20% являет-
ся нормой для развитых стран, при этом для развивающихся стран:
Индия, Китай – данное отношение составляет 30–40%.
24Джим О’Нил в работе [23] отдает должное В.В. Путину за его
инициативу по запуску проекта “материнского капитала” и утвер-
ждает, что Россия при ее уровне наукоемких фондов (доставшихся
от СССР) не требует роста населения (трудовых ресурсов) и что ей
достаточно только поддерживать численность населения на текущем
уровне, чтобы оставаться в БРИКС, показывая при этом рост 5-6%
(двузначный рост ей также не нужен).
99
5. Наименьшая трудоемкость ν– остается неиз-
менной на уровне, определенном при идентифика-
ции модели. Это предположение означает отсутствие
научно-технического прогресса. Значит, средняя про-
изводительность труда может меняться только при
значительном изменении структуры распределения
производственных мощностей.
Результаты расчета по базовому сценария
Результаты, полученные при расчете базового сцена-
рия по идентифицированной модели (см. стр. 99), показа-
ны на рис.21.
1. На графике изменения валового внутреннего продук-
та (ВВП, на графике он обозначен англоязычной аб-
бревиатурой GDP) в постоянных ценах 2005 г. виден
слабый медленно падающий рост вначале прогнозно-
го расчета, при этом ВВП к 2025 г. выходит на асим-
тотическую траекторию. Прирост реального ВВП за
двадцать лет составляет только 12.35%.
2. Загрузка суммарной производственной мощности (на
графике она обозначена CAU), вернувшаяся в 2013
г. на максимум (уровень докризисного 2008 г.), на-
чинает постепенно снижаться, что связано, очевид-
но, с отсутствием прироста в человеских ресурсах,
способных загружать имеющиеся мощности. Макс-
мимальный возраст полностью закруженной мощно-
сти в течение пяти лет с 2015 г. до 2020 г. снижается с
двадцати одного года до пятнадцати лет. Это также
свидетельствует о недостатке людских ресурсов для
загрузки мощностей.
100
3. Доля инвестиций в валовом внутреннем продукте
(на графике обозначена англоязычной аббревиату-
рой инвестиций GFCF) фиксирована на постоянном
уровне.
4. Самым существенным отличием производственных
мощностей в 2035 г. M2035 по сравнению с мощно-
стями M2013, является отсутствие глубокой просад-
ки (на мощностях двадцатилетнего возраста). При
этом на качественном уровне реальный объем мощ-
ностей практически не отличается от M2013.
Промежуточный вывод
При реализации базового сценария (при сохранении
нормы приростной фондоемкости, доли инвестирования в
ВВП, эффективности производства), экономика России в
2035 г. будет представлять из себя практически то же са-
мое, что и сейчас. Реальный рост благосостояния на 12-15
% за двадцать лет будет практически неощутим для насе-
ления и, скорее всего, уже через десять лет начнет приво-
дить к росту недовольства качеством жизни.
101
Сценарий № 2, официальный
Противоположным базовому сценарию, является сце-
нарий, лежащий в основе экономической политики госу-
дарства, провозглашенный Президентом в 2012 г. Указ «О
долгосрочной государственной экономической политике»
[26]25 был подписан Президентом Российской Федерации
В.В. Путиным 7 мая 2012 г.
Поставленные в Указе цели мы постарались перефор-
мулировать в терминах модели и соотнести с горизонтом
моделирования.
Часть текста Указа:
В целях повышения темпов и обеспечения устойчивости эко-
номического роста, увеличения реальных доходов граждан
Российской Федерации, достижения технологического ли-
дерства российской экономики постановляю:
1. Правительству Российской Федерации принять меры,
направленные на достижение следующих показателей:
a) создание и модернизация 25 млн. высокопроизво-
дительных рабочих мест к 2020 году;
б) увеличение объема инвестиций не менее чем до 25
процентов внутреннего валового продукта к 2015
году и до 27 процентов – к 2018 году;
в) увеличение доли продукции высокотехнологичных
и наукоемких отраслей экономики в валовом внут-
реннем продукте к 2018 году в 1,3 раза, относи-
тельно уровня 2011 года;
25http://kremlin.ru/news/15232.
102
г) увеличение производительности труда к 2018 году
в 1,5 раза, относительно уровня 2011 года;
д) повышение позиции Российской Федерации в рей-
тинге Всемирного банка по условиям ведения биз-
неса со 120-й в 2011 году до 50-й – в 2015 году и
до 20-й – в 2018 году.
Основные параметры указа (которые можно перевести
на язык модели) следующие26:
1. Норма инвестирования – доля инвестиций в ВВП.
Для этой величины в подпункте б) процитированно-
го выше первого пункта Указа приведена нижняя
граница, которая должна быть достигнута. Норма
инвестирования используется в модели в качестве од-
ного из параметров (на графиках этот показатель
обозначен англоязычной аббревиатурой инвестиций
GFCF).
2. Наименьшая трудоемкость νхарактеризует про-
изводительность труда, используемую в подпункте г)
Указа в качестве одной из целей, и долю продукции
высокотехнологичных и наукоемких отраслей эконо-
мики, указанную в подпункте в). Эти показатели на-
прямую невозможно перевести в используемые па-
раметры модели, так как в модели средняя произ-
водительность труда определяется не параметром, а
выражением Y/L. Доля высокотехнологичных и нау-
коемких отраслей в ВВП в модели напрямую не оце-
нивается. Ограничимся здесь предположением, что
26Будем считать, что после окончания срока, указанного в Указе,
соответствующий параметр остается неизменным.
103
повышение средней производительности труда в 1.5
раза к 2018 г. сопровождается снижением наимень-
шей трудоемкости на 20% (параметр νпостепенно
снижается к 2018 г. до уровня ν2018 =ν2012/1.2, а за-
тем фиксируется на достигнутом значении).
3. Обратная величина к коэффициенту фондо-
емкости bхарактеризует условия ведения бизнеса
в России. Условия ведения бизнеса улучшаются со
снижением уровня коррупции, что выражается в ро-
сте параметра b, используемого в модели. Показа-
тели подпункта д) Указа можно воспринимать как
некий обобщенный показатель фондоемкости, если
рассматривать шкалу мест в рейтинге, как отрезок
[120; 20] по аналогии со шкалой b= [0.4; 0.6] (по су-
ти, в данном пункте в явном виде уже заложена и
задача по борьбе с коррупцией, и уже наметившаяся
деофшоризация)27.
4. Предложение труда L(t)связано с демографией,
миграцией населения и со спросом на труд со сто-
роны производителей, т.е. зависит от числа предла-
гаемых высокопроизводительных рабочих мест (под-
пункт а) Указа). В сценарных расчетах будем пола-
гать, что предложение труда будет постоянным на
протяжении ближайших двадцати лет и равняться
75 млн. рабочих мест.
27Вариант с достижением bзначений, больших, чем 0.6, мы не
рассматриваем, так как эти значения характерны для развитых эко-
номик (коэффициент bкоторых соответствует значениям, близким
0.8).
104
5. Темп деградации мощностей µбудем полагать
неизменным, равным найденному оптимальному зна-
чению.
В целом данный сценарий мы рассматриваем как до-
вольно амбициозный. При этом считаем, что его в новых
условиях если и можно будет выполнить, то на горизон-
те в десять лет, а не за пять лет, как это предполагается в
Указе. Параметры данного Указа не только предопределя-
ют траекторию структурных изменений в экономике, но,
в первую очередь, ставят задачу качественного изменения
уровня жизни, жизненных стандартов, которые можно до-
стичь в течение десятилетия.
Результаты моделирования официального сценария
Результаты, полученные при моделировании офици-
ального сценария, показаны на рис.22.
1. Стремительный рост ВВП (на графике обозначен
GDP) с темпом 4-7% в течение пяти лет, а затем по-
степенное снижение до практически нулевого роста
в 2025 г.
2. Максимальная загрузка производственных мощно-
стей (загрузка мощностей обозначена CAU) в 80-85%
вплоть до 2018 г., а затем постепенное снижение за-
грузки до уровня 40% в 2035 г.
3. Кардинальным отличием профиля M2035 от M2013
является не только отсутствие ямы в возрасте два-
дцати лет на двадцатилетнем интервале, но и суще-
ственное отличие в части объемов (совершенно иной
уровень оснащености).
105
Промежуточный вывод
Реализация официального сценария дает возможность
достичь не только существенного прироста благостояния
на 42% (до 2025 г.) с последующем сохранением этого уров-
ня (для сравнения укажем, что рост благосостояния в ви-
де реального роста ВВП за период 2000-2008 гг. составил
58%), но и серьезным образом перевооружает экономику,
что выражается не только в росте производственных мощ-
ностей, но и в существенном снижении приростной фондо-
емкости и повышении средней производительности труда
(именно эти параметры являются основными драйверами
для роста ВВП в официальном сценарии).
Промежуточные итоги
В заключительной части, подводя итоги моделирова-
ния двух сценариев развития экономики (см. рис.23) сле-
дует отметить, что они оба есть результат определенного
воздействия на параметры системы (управляемые воздей-
ствия).
Напомним, что описанная нами производственная
функция является эндогенной, т.е. факторы ее роста опре-
деляются внутренними свойствами, а не внешними воздей-
ствиями, к каким можно отнести, например, экономиче-
ские санкции, которые непременно будут является поме-
хами для реализации официального сценария (а может
быть, наоборот, будут являться причиной, по ко-
торой этот сценарий станет неизбежным), но такой
задачи по оценке влияния санкций здесь мы перед собой
и не ставили. Считаем, что на вопросы, заданные на стр.
57, мы ответили полностью.
106
2000 2005 2010 2015 2020 2025 2030 2035
15
20
25
30
35
GDP
2000 2005 2010 2015 2020 2025 2030 2035
0.15
0.2
0.25
GFCF
2000 2005 2010 2015 2020 2025 2030 2035
0.5
0.6
0.7
0.8
0.9
CAU
2000 2005 2010 2015 2020 2025 2030 2035
10
15
20
25
Max Age
0 5 10 15 20 25 30
0
1
2
3
4
M2012
M2035
Рис. 21. ВВП в постоянных ценах (GDP), доля инвестиций в
выпуске (GFCF), загрузка мощностей (CAU) и максимальный
возраст (MAX AGE) загруженной производственной мощности
(статистика до 2012 г., расчет по модели после 2012 г.). Срав-
нение M2012 и M2035
107
2000 2005 2010 2015 2020 2025 2030 2035
15
25
35
45
55
GDP
2000 2005 2010 2015 2020 2025 2030 2035
0.2
0.3
GFCF
2000 2005 2010 2015 2020 2025 2030 2035
0.4
0.6
0.8
1
CAU
2000 2005 2010 2015 2020 2025 2030 2035
0
20
40
Max Age
0 5 10 15 20 25 30
0
2
4
6
8
M2012
M2035
Рис. 22. ВВП (GDP), доля инвестиций в выпуске (GFCF), за-
грузка мощностей (CAU) и максимальный возраст (MAX AGE)
загруженной производственной мощности (статистика до 2012
г., модельные данные после 2012 г.). Сравнение M2012 и M2035
108
2005 2010 2015 2020 2025 2030 2035
−0.10
−0.05
0
0.05
0.10
Base scenario
Official scenario
2000 2005 2010 2015 2020 2025 2030 2035
15
20
30
40
50
Real GDP
Base scenario
Official scenario
Рис. 23. Сравнение динамики роста ВВП по двум сценариям:
базовому и официальному
109
Заключение
В представленной работе мы, как и прежде в [1], по-
старались привлечь внимание математиков, иследовате-
лей, использующих в своих расчетах ресурсоемкие ма-
тематические модели, к теме снижения вычислительного
времени с использованием технологии параллельного про-
граммирования в среде MATLAB и дополнительно в среде
Simulink. Как и в предыдущей работе, мы здесь не ста-
вили своей целью описание низкоуровневых особенностей
реализации парадигмы параллельного программирования
в указанных средах, а старались лишь показать базовые
приемы, которые тем не менее можно использовать в це-
лях ускорения расчетов.
В первой главе представлены обновления пакетов
MATLAB за последние годы, продемонстрирована проце-
дура настройки и запуска параллельных режимов. На при-
веденных нами примерах в работе [1] и в гл. 1, можно убе-
диться, что, единожды освоив технологию построения и
запуска кластера с использованием MATLAB, для пользо-
вателя не составит труда адаптировать свои параллельные
программы к новым версиям синтаксиса и объектов па-
раллельного пакета MATLAB, который несомненно будет
изменяться в последующих версиях в силу непрерывного
110
развития технического и программного обеспечения.
В первой главе были также представлены в качестве
иллюстраций примеры именно параллельных программ,
которые за исключением одного казалось бы не имеют
практического значения. На этих примерах пользователь
видит, как процессы обмениваются между собой информа-
цией, работают над задачей в параллельном режиме (про-
грамма жонглирования).
Протестировав, опробовав работу со средствами па-
ралельного программирования в среде MATLAB, можно
утверждать, что данную платформу можно рассматри-
вать как среду для первого знакомства пользователя с
функциями MPI [12,37]. В дальнейших иследованиях при
использовании более сложных платформ разработки па-
раллельных программ, проблема осознания парадигмы па-
раллельного программирования стоять перед пользовате-
лем уже не будет.
Реализация задачи построения динамической модели
экономики [1] с помощью средств Simulink была исполь-
зована нами во второй главе с одной главной целью – по-
знакомить читателя с технологией применения Simulink в
задачах построения экономических моделей. Именно по-
этому было пошагово представлено построение матема-
тической модели, запуск ее программной реализации на
счет, представлены с комментариями основные ошибки, не
позволяющие пользователям, впервые сталкивающимся с
Simulink, быстро описать свою модель и запустить ее на
счет.
Платформа Simulink несомненно отличается от плат-
формы MATLAB, причем отличается кардинально, на-
столько, что можно сказать что это иная парадигма мыш-
111
ления, парадигма динамического моделирования, ведь лю-
бое новое поле Simulink – это по сути новый блок диффе-
ренциального уравнения.
Освоение данной парадигмы в любом объеме несомнен-
но расширяет кругозор исследователя и его восприятие
строящейся математической модели.
Другой целью второй главы было наше желание срав-
нить результаты базового сценарного прогноза моногра-
фии [1], оказавшегося таким точным в определении даты
кризиса реального сектора российской экономики 2008 г.,
с фактическими статистическим данными по динамике ре-
ального ВВП с 2007 г. по 2014 г.
В [1] была рассмотрена задача идентификации моди-
фицированной под российскую экономику открытой мо-
дели Рамсея. При идентификации этой модели по стати-
стическим данным экономики России 2000-2006 гг. поиск
глобального экстремума близости расчетных макропока-
зателей с их статистическими аналогами привел к неожи-
данному результату отрицательного темпа выбытия капи-
тала, т.е. фактически к бесплатному дополнительному ис-
точнику роста капитала. Этот результат был переинтер-
претирован.
Отрицательный темп выбытия капитала означает, что
капитал откуда-то прибывает с темпом, превышающим
ввод новых производственных фондов. После 2000 г. на-
чался процесс импортозамещения, улучшилась управляе-
мость экономикой, и часть неиспользуемого в 1990-е гг. ка-
питала стала возвращаться в производственный процесс.
К сожалению, это же означает, что такой механизм ро-
ста, обусловленный по большей части не созданием но-
вых производственных мощностей, а возобновлением ра-
112
боты остановленных в 1990-е гг. предприятий, не вечен,
поскольку старый капитал ограничен объемом, оставшим-
ся от советских времен. Была сделана оценка момента вре-
мени, когда процесс возобновления работы старых про-
изводственных мощностей закончится. Грубая оценка [1]
показала, что этот процесс возобновления работы старых
мощностей продлится восемь лет после 2000 г.
Именно в 2008 г. случился финансовый кризис, и если
другие страны БРИК только замедлили свой рост, эконо-
мика России в 2009 г. испытала падение ВВП на 7.9%. К
сожалению, реально происходящие изменения в экономике
России до сих пор не выходят далеко за границы прогноза
[1]. Падение в 2009 г. было чуть сильнее, затем неболь-
шой рост привел к некоторому восстановлению, в резуль-
тате чего реальная кривая ВВП приблизилась к прогноз-
ной кривой.
В третьей главе на основе работы [21], была сформу-
лирована задача построения эндогенной производственной
функции для эндогенной математической модели эконо-
мического роста и ее идентификации по статистическим
данным для экономики России. В основе описания эндо-
генной производственной функции народного хозяйства
страны или некоторой отрасли экономики лежит матема-
тическая модель, описывающая на микроуровне динамику
производственных мощностей, дифференцированных по
моментам создания и имеющих различную трудоемкость.
С помощью данной модели мы постарались решить следу-
ющие задачи:
•демонстрация улучшения (с точки зрения обуслов-
ленности) задачи идентификации параметров в моде-
лях реальных экономических систем на основе дан-
113
ных официальной статистики. Как правило все “ин-
тересные” задачи являются плохообусловенными;
•анализ полученного решения (точки на поверхно-
сти многомерной функции оптимальности), оно было
проанализировано с помощью средств визуализации
многомерных массивов28;
•совмещение описания реальной экономической си-
стемы в математической модели на языке формул
с техническими аспектами программной реализации
модели, попытка простыми средствами популярных
пакетов показать реализацию всех основных блоков
(подсистем) модели, а также описать процедуру пре-
вращания последовательной программы в програм-
му, исполняемую в распределенном режиме (при ре-
ализации модели как в MATLAB, так и в Simulink).
В последней части третьей главы мы использовали
идентифицированную модель для изучения достижимости
так назваемых «майских указов Президента РФ». Указы,
подписанные в мае 2012 г., тем не менее и сейчас в 2015 г.
во многом определяют экономическую политику страны.
Нередко можно услышать, как руководители регионов, от-
читываясь о текущем положении дел в регионе, отдельно
комментируют исполнение майских указов, либо сам Пре-
зидент спрашивает руководителей регионов, Правитель-
ства об их исполнении.
Несомненно у читателей, близко знакомых с тематикой
экономического моделирования, возникнут вопросы о том,
28Как нам кажется, в этой области (Tecnical computing and
visualization) MATLAB бесспорный лидер.
114
насколько правомерно использовать параметры иденти-
фицированной нами модели к задаче моделирования «май-
ских указов», однако мы считаем, что на качественном
уровне модель, описанная нами, полностью подходит для
этих целей (на все допущения о значениях соответвующих
параметров были представлены соответствующие коммен-
тарии).
Полученная в результате моделирования динамика
ВВП и производственных мощностей оказалась впечатля-
ющей: стремительный рост ВВП на протяжении 7-8 лет
(3-7%) сменяющийся плавным ростом (выходом на уро-
вень 0.5-1%) в последующие 15 лет, говорит о том, что в
«майские указы» заложено качественное изменение уров-
ня жизни (его скачок). По нашему мнению, «майские ука-
зы» есть не что иное, как ответ руководства (правящей
элиты) на запрос, который сформировало общество, ощу-
тившее за период «нулевых» если не удвоение, то почти
удвоение уровня жизни. При этом риск, основанный на
вере в постоянно растущую (либо постоянную) нефтяную
ренту, оказался для элит неприемлимо высоким (кризисы
2008 г. и 2015 г. показали, что цена нефти может значи-
тельно падать). Пессиместический сценарий, основанный
на консервации развития, как нам кажется, также непри-
емлимо рискованный для российского общества по той же
причине (причине сформировавшегося запроса). С высо-
кой долей вероятности можно утверждать, что общество
не выдержит двадцать лет стагнации.
Еще раз хотелось бы отметить, что события 2014 г. не
нашли отражения ни в модели, ни в имеющихся у нас ста-
тистических данных в связи с высокой скоростью разви-
тия событий. При этом косвенно можно говорить о том,
115
что программа импортозамещения в оборонной и сельско-
хозяйственных отраслях гарантированно будет способсто-
вать росту производственных мощностей (росту вектора
инвестиций (I)). Как это ни грустно звучит, вынужден-
ные переселенцы из восточной Украины в большей своей
части, скорее всего, останутся в регионах временного раз-
мещения, тем самым способствуя росту российских трудо-
вых ресурсов (L).
Дальнейшая работа
В рамках продолжения исследований, тестирования
возможностей применения MATLAB нами планируется
рассмотреть в части использования дополнительных тех-
нических возможностей ускорения вычислений примене-
ние видеокарт (технология CUDA). В части практическо-
го применения параллелизма программ планируется рас-
смотреть решение задачи о минимуме потенциальной энер-
гии молекул. Последняя задача интересна как с точки зре-
ния своей физики (разные положения узлов молекулы по
сути есть разные вещества), так и с математической точки
зрения – сам функционал является многоэкстремальным,
ну и, конечно, с точки зрения задачи программирования
самой по себе, которая связана с распараллеливанием ал-
горитма поиска минимума.
В части продолжения работы по моделированию экно-
мического роста нам кажется достаточно интересной зада-
ча об исследовании экономического роста двух взаимодей-
ствующих стран, роста, вызванного взаимным проникно-
вением или заимстованием технологий/ресурсов [38] (при
116
внешнем тормозящем воздействии)29.
Интересна и более простая модель экономики одной
страны, в которой, с одной стороны, учитывается откры-
тость экономики, например, как в модели типа Рамсея, ис-
пользованной в [1], так и эндогенный экономический рост,
как, например, тот, что заключен в численном построении
эндогенной производственной функции, использованной в
настоящей монографии.
После построения такой открытой динамической мо-
дели экономики с эндогенным ростом и идентификации
ее параметров интересно будет исследовать устойчивость
прогнозирования по такой модели с помощью метода мно-
жеств идентификации, представленного в работе [5] иссле-
дованием устойчивости прогнозирования по модели Рам-
сея. Там оказалось, что глобальный экстремум свертки
ошибок идентификации, найденный еще в конце 2006 г.,
не является устойчивым. От наших сегодняшних действий
зависит будущее нашей экономики.
29Например, при воздействии третьей страны.
117
Литература
1. Оленев Н.Н., Печенкин Р.В., Чернецов А.М.
Параллельное программирование в MATLAB
и его приложения. М.: ВЦ РАН, 2007. 120 c.
http://dx.doi.org/10.13140/RG.2.1.1766.4481
2. Оленев Н.Н. Исследование влияния структурных из-
менений на экономику России. Вестник Российско-
го университета дружбы народов Серия Экономика.
2015, № 1. C.150-157.
3. Olenev N. A Ramsey type model with an endogenous
production function for study of economic systems.
10th International Conference “Economic Integration,
Competition and Cooperation” (April 22-24, 2015).
Book of Abstracts. Opatija-Croatia-Hotel Ambasador:
University of Rijeka, 2015. P.54.
4. Olenev N. Parallel algorithms of global optimization in
identification of an economic model. CEDIMES Scientific
Seminar at Dorodnicyn Computing Centre – Moscow:
CEDIMES-Russie occ., Vol. 1, No. 1, 2015. P.45-49.
118
5. Каменев Г.К., Оленев Н.Н. Исследование устойчи-
вости идентификации и прогнозирования российской
экономики на модели Рамсея. Математическое моде-
лирование, М.: Т. 26. № 9. С.3-17.
6. Kamenev G.K., Olenev N.N. Study of the Russian
Economy’s Identification and Forecast Stability Using
a Ramsey Type Model // Mathematical Models and
Computer Simulations, Vol. 7, No. 2, 2015, P.179-189.
DOI 10.1134/S2070048215020076
7. Оленев Н.Н., Каменев Г.К., Гусман В.Л. Исследова-
ние устойчивости прогнозирования на модели россий-
ской экономики методом множеств идентификации.
Москва.: ВЦ РАН, 2012. 50 c.
8. Медведев Д.А. Распоряжение 1273 - р. О внесении из-
менений в перечень технологий, имеющих важное со-
циально-экономическое значение или важное значение
для обороны страны и безопасности государства (кри-
тических технологий). 14 июля 2012 года.
9. Чернецов А.М. Использование GPU в MATLAB.
“Международный форум информатизации МФИ-2011
// Труды международной конференции “Информаци-
онные средства и технологии”. Т.2, Москва, 18-20 ок-
тября 2011 г. C.315-317.
10. Чернецов А.М. Использование средств MATLAB для
организации распределенной обработки // Инфорино-
2012. Труды международной конференции “Информа-
тизация инженерного образования”, Москва, 10-11 ап-
реля 2012 г. C.127-130.
119
11. Чернецов А.М. Автореферат диссертации на соиска-
ние ученой степени кандидата технических наук. Ме-
тоды и программные средства организации эффектив-
ных вычислений для расчета электронной структуры
больших молекулярных систем. 2012.
12. Долматова А.И., Оленев Н.Н. Моделирование дина-
мики социальной стратификации: параллельные алго-
ритмы и программы. М.: ВЦ РАН, 2014. 112 с.
13. Журтов А.Ю. Модель анализа прогнозирования и ре-
гулирования экономики России // CEDIMES Scientific
Seminar at Dorodnicyn Computing Centre. Vol. 1, No. 1.
P.7-11.
14. Журтова С.А. Идентификация модели экономики
Японии // CEDIMES Scientific Seminar at Dorodnicyn
Computing Centre. Vol.1, No.1. P.12-17.
15. Ресса Прохорова К.С. Модель экономики Италии //
CEDIMES Scientific Seminar at Dorodnicyn Computing
Centre. Vol.1, No.1. P.27-32
16. Кепнер Дж. Параллельное программирование в сре-
де MATLAB для многоядерных и многоуровневых вы-
числительных машин. М.: Изд-во МГУ, 2013. – 296 с.
(Серия «Суперкомпьютерное образование»)
17. Программное обеспечение кластера «Уран».
http://parallel.uran.ru/node/91
18. Цисарь И.Ф. MATLAB Simulink. Компьютерное мо-
делирование экономики. М.: СОЛОН–ПРЕСС, 2008.–
256 с.
120
19. Anderson, Patrick L. Business Economics and Finance
with MATLAB, GIS, and Simulation Models. CRC Press
2004.
20. Форрестер, Джей. Мировая динамика. М.:1978, 210 c.
21. Оленев Н.Н., Петров А.А., Поспелов И.Г. Модель про-
цесса изменения мощности и производственная функ-
ция отрасли хозяйства // Математическое модели-
рование: Процессы в сложных экономических и эко-
логических системах. М.: Наука. 1986, C.46-60. DOI:
10.13140/RG.2.1.3938.8880
22. Котликофф Л. Бернс С.Пенсионная система перед бу-
рей: То, что нужно знать каждому о финансовом бу-
дущем своей страны. М.: Альпина Бизнес Букс, 2005.
250 c.
23. O’Neill, Jim. The Growth Map: Economic opportunity in
the BRICs and beyond. Penguin 2011.
24. O’Neill, Jim. The BRIC road to growth (Perspectives).
London: London Publishing Partnership 2013.
25. О’Нил, Джим. Карта роста. Будущее стран БРИК и
других развивающихся рынков. М.: Litres, 2013. 180 c.
26. Путин В.В. Указ о долгосрочной государственной
экономической политике N 15232. 7 мая 2012.
27. MathWorks, Matlab functions parallelism desqription.
28. MPI-2 page
29. MathWorks, Matlab R2014 Mpi functions build-on.
121
30. MathWorks, Matlab R2012 parallel realize.
31. Черных И.В.. Simulink: среда создания инженерных
приложений. М.: Диалог-МИФИ. 2003, 300 c.
32. Макарова М.А., Оленев Н.Н. К модели инвестицион-
ной политики фирм c учетом обучения персонала //
VII Московская международная конференция по ис-
следованию операций (ORM2013), Москва, 15-19 ок-
тября 2013. Труды. Т.2. C.83-86.
33. National Accounts Main Aggregates Database.
34. Kar, Dev and Freitas, Sarah. Structural Challenges to
Growth Become Binding. World Bank Russia Economic
Report. 30, September 2013.
35. Kar, Dev and Freitas, Sarah. Global Financial Integrity
and Ford Foundation. Russia: Illicit Financial Flows and
the Role of the Underground Economy. JOUR 2013.
36. Гуриев С.М., Качинс Э., Ослунд А.. Россия после кри-
зиса. М.: Альпина Бизнес Бук, 2011. 120 c.
37. Оленев Н.Н. Основы параллельного программиро-
вания в системе MPI. М.: ВЦ РАН. 2005. 80 с.
DOI:10.13140/RG.2.1.4912.1767
38. Акаев А.А., Коротаев А.В., Малков С.Ю. Мировая
динамика: Закономерности, тенденции, перспективы.
М.: КРАСАНД. 2013. 320 c.
122
Оленёв Николай Николаевич,
Печёнкин Руслан Викторович,
Чернецов Андрей Михайлович
Параллельное программирование в MATLAB и
Simulink с приложениями к моделированию
экономики
Подписано в печать 28.05.2015
Формат бумаги 60x84 1/16
Уч.-изд. л. 5. Усл.-печ.л. 7,75
Тираж 120 экз. Заказ 42
Отпечатано на ротапринтах
в Федеральном государственном бюджетном учреждении науки
Вычислительный центр им. А.А. Дородницына Российской академии наук
119333, Москва, ул. Вавилова, 40