ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ В MATLAB

И ИХ ПРИЛОЖЕНИЯ К МОДЕЛИРОВАНИЮ ЭКОНОМИКИ

 

 

Н.Н. Оленев, А.М. Чернецов

 

 

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

Технология распределенных и параллельных вычислений реализована компанией MathWorks с помощью двух взаимосвязанных пакетов расширений (приложений): MATLAB Distributed Computing toolbox [2] и MATLAB Distributed Computing Engine (MDCE) [3]. Схема распределенных вычислений MATLAB реализована таким образом, что планировщик запрашивает ресурсы рабочих процессов. В качестве процесса, в частности, может выступать узел кластера, процессор симметричной многопроцессорной системы, ядро многоядерного процессора. Взаимодействия происходят через запущенную на каждой машине службу MDCE.

Межпроцессорные обмены реализованы средствами библиотеки MPI mpich2. Методология компании Mathworks выделяет отдельно распределенные и параллельные задачи. Примером первых является распределенное представление матрицы в виде произведения нижней треугольной матрицы L и верхней треугольной матрицы U (LU разложение матрицы), когда матрица разделяется на блоки автоматически средствами MATLAB. Ко вторым относятся задачи, в которых межпроцессорные обмены заданы явно с использованием специальных процедур, аналогичных средствам MPI [1,2].

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

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

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

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

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

Пусть валовой внутренний продукт (ВВП) определяется однородной производственной функцией с постоянной эластичностью замещения (CES-функцией). Обычно параметры производственной функции определяют с помощью нелинейного метода наименьших квадратов по данным экономической статистики для временных рядов переменных, непосредственно входящих в производственную функцию. Но, в нашем случае значения капитала, представляемые статистическими органами, вызывают большое сомнение [1, 4]. Статистические данные по капиталу практически не меняются от года к году. Фактически эти значения представляют собой капитал, созданный во времена СССР и в настоящее время в большой степени представляет собой "бесплатные" ресурсы, подобные некоторым природным ресурсам, которые еще можно использовать без оплаты (воздух, вода). На выпуске сказывается влияние только капитала, уже вовлеченный в процесс воспроизводства, имеющего объективную стоимость. Капитал является некой эффективной стоимостью производственных фондов, которую надо оценить.

Предположим, что труд, измеряемый в рассматриваемой модели среднегодовым числом занятых в народном хозяйстве (в отличие от [4], где труд измеряется числом отработанных часов для учета сезонных колебаний от квартала к кварталу), растет с постоянным темпом.

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

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

Для замыкания модели предположим, что объемы инвестиций, экспорта и импорта в постоянных ценах 2000 года определяются постоянными коэффициентами пропорциональности их выпуску (ВВП), также выраженному в постоянных ценах. Эти предположения подтверждаются статистическими данными 2000-2006 годов. Таким образом, мы получаем простейшую динамическую модель экономики России.

Итак, для идентификации модели надо задать изменение внешних интенсивных параметров модели. Это временные ряды для трех относительных цен (на экспорт, на импорт и на инвестиции), семь постоянных параметров (два параметра производственной функции CES, темп роста занятых, темп списания капитала, три коэффициента пропорциональности инвестиций, экспорта и импорта выпуску) и три начальных значения (для выпуска, для капитала и для труда). Задать внешние параметры надо таким образом, чтобы расчетные временные ═ряды макропоказателей модели были близки к статистическим временным рядам соответствующих макропоказателей экономики России. Для существующей в настоящее время вычислительной техники даже эта простейшая модель не может быть идентифицирована прямым перебором. Поэтому большую часть параметров, для которых это можно сделать, определим традиционным способом - посредством статистических оценок по данным Федеральной службы государственной статистики РФ (www.gks.ru) для каждого отдельного соотношения модели. В результате у нас останутся четыре параметра, которые напрямую из статистики определить невозможно из-за отсутствия достоверных данных по капиталу: два параметра производственной функции, начальное значение капитала и темп его выбытия. Эту задачу можно решить, используя параллельные вычисления в системе MATLAB.

Временные ряды считаются похожими, если они близки как функции времени (другими словами, между значениями временных рядов существует сильная, возможно нелинейная, связь). Будем использовать коэффициент корреляции Пирсона D(X, Y), который является мерой силы и направленности линейной связи между сравниваемыми временными рядами X и Y, и чем он ближе к единице, тем более схоже поведение этих рядов. При этом следует учитывать, что инфляционная составляющая может преувеличивать линейную связь рядов, поэтому при использовании коэффициента корреляции нужно сравнивать показатели в реальных величинах. Индекс Тейла E(X, Y) измеряет несовпадение временных рядов X(t) и Y(t) и чем ближе он к нулю, тем ближе сравниваемые ряды. Для удобства проведения расчетов со сверткой критериев, в дальнейшем вместо индекса Тейла будем использовать коэффициент близости U(X, Y) = 1 - E(X, Y). Чем выше он (чем ближе он к единице), тем более близки ряды.

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

Численная реализация задачи идентификации

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

Схема алгоритма

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

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

3. Для каждого макропоказателя, участвующего в сравнении расчетных и статистических данных, рассчитываются критерии близости $U$ и корреляции $D$ между расчетными и статистическими временными рядами на промежутке времени 2001-2006.

4. Рассчитываем свертку критериев.

5. В каждом процессе определяем лучший номер набора параметров по критерию.

6. На процессе мастере выбираем лучший номер из лучших, полученных от рабочих процессов. Рассчитываем и распечатываем для него временные ряды всех показателей и значения всех критериев.

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

Некоторые вспомогательные функции используются в цикле перебора вариантов вместо встроенных функций MATLAB, чтобы ускорить расчет. Встроенные функции MATLAB (например, коэффициент корреляции Пирсона corr(X',Y')), удобно использовать в последовательных частях программы, если нужно подсчитать дополнительные характеристики сравниваемых временных рядов.

Результатом идентификации модели являются оптимальные параметры для производственной функции (a = 0.84, b = -0.78), темпа выбытия m = -0.175, и начальное значение для капитала K0 = 17819 млрд. руб 2000 года. Данные для капитала K(t), рассчитанные на основе модели (K estim), и данные для выпуска Y(t), рассчитанные по модели (Y estim), и статистические (Ystat), представлены на рис.1.

 

Рис.1

 

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

Оценим время T с 2000 года, за которое будет вовлечен весь неиспользуемый до конца этого года капитал. Будем исходить из следующих правдоподобных предположений: (1) объем новых инвестиций совпадает с объемом капитала, выбывающего вследствие физического и морального износа; (2) за весь процесс вовлечения капитал может вырасти в четыре раза в сравнении с его начальным уровнем в 2000 году. Тогда общее время процесса вовлечения старого капитала истечет через T = (1/|m|) ln(K(T)/K(0)) = ln(4)/0.175, что приблизительно равно восьми годам. Поскольку t = 0 соответствует 2000 году, это означает, что к концу 2008 года исчерпается лимит вовлечения простаивавших производственных фондов.

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

Базовый, он же пессимистический сценарий

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

1. Источник вовлечения производственных фондов советских времен, вот-вот будет исчерпан.

2. Производственные фонды, используемые в производстве, сильно изношены.

3. Прирост числа занятых занятых в прогнозный период практически невозможен.

Поэтому базовый вариант прогноза оказывается пессимистическим. Зададим базовый сценарий прогноза с 2007 до 2020 года следующими условиями:

1. Все внешние параметры, за исключением m, считаем такими, как они были оценены по статистическим данным 2000-2006 годов.

2. Параметр m резко меняет свое значение и экономический смысл с 2009 года: m = -0.175 < 0 до 2008 года, а═ начиная с 2009 он становится положительным m = J(0) / K(0) = 0.0678 > 0 и означает темп выбытия капитала вследствие износа.

3. Считаем, что объем используемого в производстве труда до 2008 года возрастает и достигает максимального значения L(0) =70.94 млн. человек в 2008 году и далее не меняется.

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

Оптимистичный сценарий

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

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

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

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

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

В результате идентификации параметров оптимистического варианта получены следующие значения параметров: параметры производственной функции (a = 0.9316, b = 0.82, c=5.0268), начальный уровень капитала K(0) = 7380.4 млрд. руб 2000 года.

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

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

Работа выполнена при частичной финансовой поддержке Российского фонда фундаментальных исследований (коды проектов 07-01-00563-а, 07-01-12032-офи), Российского гуманитарного научного фонда (код проекта 06-02-91821-а/G), программы Intel Education Project 2006-2007, программы Президиума РАН ╧ 15, программы ОМН РАН ╧ 3, по программе государственной поддержки ведущих научных школ (код проекта НШ-5379.2006.1).

 

ЛИТЕРАТУРА:

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

2.        http://www.mathworks.com/access/helpdesk/help/pdf_doc/distcomp/distcomp.pdf

3.        http://www.mathworks.com/access/helpdesk/help/pdf_doc/mdce/mdce.pdf

4.        Н.Н. Оленев Параллельные вычисления для идентификации параметров в моделях экономики. // Высокопроизводительные параллельные вычисления на кластерных системах. Мат. IV межд. научно-практ. сем. и всерос. молод. шк./Под ред. чл.-корр. РАН В.А. Сойфера, Самара, 2004. - C. 204-209.