Параллельный алгоритм расчета неоклассической модели межотраслевого баланса Мударисов И.М., студент 4 курса кафедры вычислительной математики, математический.

Презентация:



Advertisements
Похожие презентации
РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ МОДЕЛИРОВАНИЯ КОНКУРЕНТНОГО РЫНКА НА КЛАСТЕРНЫХ СИСТЕМАХ Авторы: Е.В. Болгова, А.С. Кириллов, Д.В. Леонов Научный.
Advertisements

Постановка задач математического программирования.
Графический метод решения задач математического программирования 1. Общий вид задачи математического программирования Z = F(X) >min Z = F(X) >min g i (x.
Краткий курс лекций по математике Для студентов 1 курса экономического факультета Шапошникова Е.В. к.ф.-м.н., доцент.
Что такое ЦОД? ЦОД специализированное здание для размещения (хостинга) серверного и коммуникационного оборудования и подключения к каналам сети Интернет.
Использование языка Си для программирования ЦСП TMS320C67x.
Г ЛАВА 8: О ПТИМАЛЬНЫЙ РАЗМЕР ЗАКАЗА.. М ОДЕЛЬ ОПТИМАЛЬНОГО ИЛИ ЭКОНОМИЧЕСКОГО ЗАКАЗА Расчет производится на основе суммарных общих затрат, которые можно.
Сравнение различных способов декомпозиции сеточной области при численном решении уравнения переноса Е.А. Данилкин, А.В. Старченко Томский государственный.
Современные компьютерные технологии в экономической науке и практике 1 Кийкова Елена Валерьевна Ст. преподаватель кафедры ИСПИ ВГУЭС Владивосток.
ПАРАЛЛЕЛЬНАЯ ФИЛЬТРАЦИЯ ИЗОБРАЖЕНИЙ Фурсов В.А., Попов С.Б. Самарский научный центр РАН, Самарский государственный аэрокосмический университет, Институт.
Экономические приложения выпуклого программирования: числовые модели Содержание лекции: Градиентные методы решения задач выпуклого программирования Градиентные.
Математическая модель и численные методы. Интерполяционный полиномы Лекция 1:
Лекция 12 Быстрое преобразование Фурье Нахождение спектральных составляющих дискретного комплексного сигнала непосредственно по формуле ДПФ требует комплексных.
Нижегородский государственный университет им. Н.И.Лобачевского Факультет Вычислительной математики и кибернетики Применение технологии Cilk для решения.
ОПТИМАЛЬНОЕ НЕПРЯМОЕ УПРАВЛЕНИЕ ЛИНЕЙНЫМИ ДИНАМИЧЕСКИМИ СИСТЕМАМИ Белорусский государственный университет Факультет прикладной математики и информатики.
Интернет Университет Суперкомпьютерных технологий Анализ сложности вычислений и оценка возможности распараллеливания Учебный курс Основы параллельных вычислений.
Магистерская диссертация 2009 Журак И.К. 1 БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ФАКУЛЬТЕТ ПРИКЛАДНОЙ МАТЕМАТИКИ и ИНФОРМАТИКИ Кафедра информационного.
Выполнили: Мартышкин А. И. Кутузов В. В., Трояшкин П. В., Руководитель проекта – Мартышкин А. И., аспирант, ассистент кафедры ВМиС ПГТА.
Двойственность линейного программирования. Правила построения двойственных задач: 1. Если в исходной задаче целевая функция исследуется на min, то в двойственной.
Численные методы линейной алгебры. Методы решений нелинейных уравнений и систем. Лекция 3:
Транксрипт:

Параллельный алгоритм расчета неоклассической модели межотраслевого баланса Мударисов И.М., студент 4 курса кафедры вычислительной математики, математический ф-т УдГУ, г. Ижевск

Описание модели N – число чистых отраслей A – число финансово-промышленных групп (ФПГ) M – число видов первичных ресурсов – производственная функция, описывающая выпуск продукта j-й отраслью, принадлежащей ФПГ, где – векторы продуктов и первичных ресурсов, затрачиваемых в ФПГ для выпуска j-го продукта – вогнутая функция полезности, описывающая спрос населения (индекс потребления), где – вектор конечного потребления продуктов населением. Рассматриваемая модель подробно описана в работе: Э.В. Автухович, С.М. Гуриев, Н.Н. Оленев, А.А. Петров, И.Г. Поспелов, А.А. Шананин, С.В. Чуканов «Математическая модель экономики переходного периода», вычислительный центр РАН, Москва Приведем краткое описание модели.

Описание модели

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

Описание функций, участвующих в задаче

Метод решения Метод одновременного решения пары двойственных задач [1] Метод сопряженных градиентов [1] [1] – Б.Т. Поляк «Введение в оптимизацию», «Наука», Москва 1983.

Оценка размерности задачи Число чистых отраслей N возьмем равным 50, финансово- промышленных групп (ФПГ) – 25, а первичных ресурсов – 10. Тогда dimU = ~ 4.5x2 20, dimW = ~ 6x2 20. Если каждая координата вектора u представляется одним числом типа double (8 bytes), то для хранения вектора u необходимо порядка 40 Mb. N=50 A=25 M=10 => u ~ 40Mb Хранение такого объема информации в оперативной памяти вполне реально для современных ЭВМ. Если же мы захотим разместить в памяти градиенты всех функций ограничений, то потребуется матрица размером dimU x dimW. Ее объем оценивается в 2x10 5 Gb. Это совершенно нереальный для хранения объем информации.

Mathematica 4.1 Пакет Mathematica использовался для формирования тестовых примеров. Основная ценность реализации в точности получаемых результатов. С++ Основная ценность реализации – это создание основы для параллельного варианта численной реализации методов. Программа на языке C++ характеризуется следующим: исходные данные хранятся на внешнем носителе в файлах, результаты каждой итерации (новые приближения прямых и двойственных переменных и значение целевых функций) включаются в файл отчета. Ведется учет времени по итерациям. Использование языка C++, а не С, обусловлено удобством работы с файлами. Средства реализации до этапа распараллеливания

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

Реализация идей распараллеливания Первый путь привел к распараллеливанию основного алгоритма за счет множителя Второй путь выявил следующее: расчет градиента квад- ратичной функции в методе сопряженных градиентов занимает в работе всей программы более 90% времени. Определим причины этого факта. Размерность градиента равна dimW. Вычисление одной координаты градиента требует вычисления значений квадратичной функции в двух точках, что требует поряд- ка dimU*dimW операций. Получаем объем вычислений порядка dimW*dimU*dimW. Никакой другой фрагмент программной реализации не требует такого объема вычислений. В результате распараллеливания, именно этот путь при- вел к значительному ускорению времени расчета модели.

Схема распараллеливания По множителю Главная (master) задача запускает дочерние (slave) задачи, посылает им необходимые аргументы и множитель(-и), получает результаты и выбирает лучший вариант. Расчета градиента квадратичной функции Главная (master) задача запускает N_task дочерних (slave) задач, посылает им векторы u, w k, множество I k и индексы Start_k, Finish_k. Slave задача рассчитывает часть градиента, начиная со Start_k-ой координаты по Finish_k-ую. Результатом работы slave задачи являются (Finish_k -Start_k) координат искомого градиента. Во время работы slave задач master работает подобно им. Значение (Finish_k -Start_k) определяется числом запускаемых задач N_task, а именно, (Finish_k -Start_k) = [dimW / (N_task+1)] Так как объем вычислений для всех slave задач получается равным, то прием результатов осуществляется просто по порядку, а не по мере окончания вычислений в slave задачах.

Средства распараллеливания В течение 3-го, 4-го курсов учебы на математическом факультете УдГУ студенты кафедры вычислительной математики изучают курсы «Математическая экономика» и «Параллельные алгоритмы». В рамках первого курса была предложена сама задача, а в рамках второго – средства параллельного программирования, в частности PVM (Parallel Virtual Machine). Основная часть программы написана на языке C++ Параллельная часть программы реализована с помощью PVM Отладка и мониторинг производились с помощью XPVM Запуск программ осуществлялся на кластере PARC Кластер включает в себя 5 узлов на каждом из которых имеется 2 процессора Intel Pentium III 800 МГц

Результаты распараллеливания Вывод: Использование второго процессора на одном узле уменьшает время в 2 раза, что является максимально возможным. Использование двух узлов уменьшает время счета в 3.5 раза при максимально возможном в 4 раза. Использование 3-х, 4-х, 5-ти узлов дает примерно одинаковое ускорение в раз Результаты полученные при решении задачи с N=10, A=5, M=5. Приводится график временной зависимости выполнения одного объема вычислений при различном числе запускаемых задач для разного количества узлов кластера

Результаты распараллеливания Оптимальный вариант: master + 9 slave задач Неоптимальный вариант: master + 19 slave задач Вывод: Чрезмерное увеличение числа задач ведет к простою процессоров во время ожидания посылаемых данных Результаты полученные в XPVM при решении задачи с N=4, A=4, M=2. Запуск на 5 двухпроцессорных узлах кластера PARC. Приводится структура работы программы во времени

Результаты распараллеливания Оптимальный вариант: master + 9 slave задач Неоптимальный вариант: master + 19 slave задач Вывод: При оптимальном подборе числа запускаемых задач удается достичь более эффективной загрузки всех процессоров одновременно. То есть достигается равномерная загрузка процессоров. Результаты полученные в XPVM при решении задачи с N=4, A=4, M=2. Запуск на 5 двухпроцессорных узлах кластера PARC. Приводится характеристика работы запускаемых задач во времени

Результаты распараллеливания Оптимальный вариант: master + 9 slave задач Неоптимальный вариант: master + 19 slave задач Вывод: В оптимальном варианте число запускаемых задач равняется числу используемых процессоров кластера. Результаты полученные в XPVM при решении задачи с N=10, A=5, M=5. Запуск на 5 двухпроцессорных узлах кластера PARC. Приводится структура работы программы во времени

Результаты распараллеливания Оптимальный вариант: master + 9 slave задач Неоптимальный вариант: master + 19 slave задач Вывод: Данные результаты показывают эффективность распараллели- вания расчета градиента квадратичной функции. Видно, что работа остальной части программы занимает значительно меньше времени. Результаты полученные в XPVM при решении задачи с N=10, A=5, M=5. Запуск на 5 двухпроцессорных узлах кластера PARC. Приводится характеристика работы запускаемых задач во времени

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