WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

загрузка...
   Добро пожаловать!

Pages:     | 1 | 2 ||

Для достижения нашей цели уравнение потока данных характеризуем его функцией обновления. Такая функция ассоциируется с каждым состоянием S.

Определим in[S] как множество мертвых переменных в точке непосредственно перед блоком S, а out[S] – такое же множество в точке, непосредственно следующей за блоком S.

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

out[S] = S in[S] in[S] = FS, где out[S] = S DEAD[S] – это пересечение множества мертвых переменных для всех состояний S, которые являются преемниками S в G, а FS – это функция обновления, которая в нашем случае равна FS = out[S] gen[S] – use[S] и свидетельствует о переменных, которые мертвы непосредственно перед S и тех переменных, которые стали мертвыми после S, плюс о тех, в которые производилась запись в состоянии S, минус любые ячейки, с которых происходило чтение в S.

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

Глава 4 посвящена применению разработанной методологии поддержки разработки параллельных программ на примере создания программы моделирования интенсивных атмосферных вихрей (ИАВ).

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

В настоящее время использование параллельного программирования стало массовым, и у ученых появилась возможность проверять в реальные сроки идеи и модели, требующие больших вычислительных затрат. При разработке и модификации параллельной программы необходимо убедиться не только в ее правильности, но также в ее эффективности и масштабируемости. Однако анализ динамических свойств программы (профилей, трасс, слайсов и т.п.), позволяющий установить ее эффективность и масштабируемость, как правило, бывает связан с необходимостью многочисленных прогонов еще не полностью отлаженной программы на целевом вычислительном комплексе (высокопроизводительном кластере). Инструменты среды ParJava позволили провести анализ параллельной программы и оптимизировать ее код, работая на инструментальной машине, не выходя каждый раз на кластер. Это, с одной стороны, сократило время, и, с другой стороны, снизило затраты на разработку и отладку кода. Эта работа была проведена при создании параллельной программы решения системы нелинейных уравнений, моделирующей процессы и условия генерации интенсивных атмосферных вихрей (ИАВ) в трехмерной сжимаемой атмосфере. Рассматриваемая система уравнений является сильно нелинейной системой смешанного типа. Программа разрабатывалась в Институте системного программирования РАН в сотрудничестве с Институтом физики Земли РАН с использованием среды ParJava и предназначена для выполнения на кластерных вычислительных системах.

Для решения системы использовалась явная разностная условно-устойчивая схема второго порядка точности по времени и пространству; критерии ее устойчивости оказались близкими к явной схеме Маккормака.

Параллельная программа была реализована в среде ParJava с использованием библиотеки MPI. Инструменты среды ParJava позволили провести анализ параллельной программы и оптимизировать ее код.

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

После инициализации программа сохраняет нулевой слой данных и начинает выполнять свой основной цикл по времени. На одну итерацию по времени 4 раза вызывается функция Layer, которая вычисляет значения основных массивов в цикле по X, по Y, по Z, и, если на данной итерации надо делать сохранение данных, то раза вызывается функция Eplus.

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

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

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

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

Тестирование производилось на кластере ИСП РАН, на 16ти 4-ядерных процессорах Intel(R) Xeon(R) CPU X5355 @ 2.66GHz Myrinet Express 2000. При тестировании производительности (рисунок 5) использовались начальные данные рабочей задачи, но вычислялись только первая секунда жизни торнадо. Пунктиром показано линейное ускорение, которое является теоретическим пределом ускорения для параллельной задачи. В данном случае изображен график ускорения для программы с двумерным разбиением массива по процессорам. Реализован вариант с трехмерным рабиением, но такой вариант разбиения для данной программы оказался не самым оптимальным, в виду неоднородности вычислений по оси Z.

0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 количество процессоров Блокирующие пересылки Оптимизированные блокирующие пересылки Оптимизированные неблокирующие пересылки Амдалева кривая Рисунок 5 График ускорения.

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

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

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

2. Разработан и реализован в среде ParJava механизм оптимальной организации контрольных точек.

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

По теме диссертации опубликованы следующие работы 1. Аветисян А.И., Бабкова В., Гайсарян С.С., Губарь А.Ю.. Рождение торнадо в теории мезомасштабной турбулентности по Николаевскому. Трехмерная численная модель в ParJava. // Журнал «Математическое моделирование».

2008, т.20, номер 8, стр. 28-2. А.И.Аветисян, B.B. Бабкова и А.Ю.Губарь. «Возникновение торнадо:

трехмерная численная модель в мезомасштабной теории турбулентности по В.Н.Николаевскому»// «ДАН / Геофизика», том 419, №4, с. 547-552.

3. Аветисян А. И., Бабкова В. В., Губарь А. Ю. «Моделирование интенсивных атмосферных вихрей в среде ParJava.» // Всероссийская научная конференция «Научный сервис в сети ИНТЕРНЕТ: технологии параллельного программирования», г. Новороссийск, 18-23 сентября 2006. стр. 109-112.

4. А.И.Аветисян, С.С.Гайсарян, А.Ю.Губарь, В.В.Бабкова «Моделирование интенсивных атмосферных вихрей в среде ParJava” // Международный научно-практический Семинар и Молодежная школа «Высокопроизводительные Параллельные Вычисления на Кластерных Системах» 12-17 декабря 2006 года. стр.16-20.

5. A.Yu. Gubar, A.I. Avetisyan, and V.V. Babkova, “Numerical modelling of 3D tornado arising in the mesovortice turbulence theory of Nikolaevskiy” //International Conference on the Methods of Aerophysical Research: Proc. Pt III /Ed. V.M. Fomin. – Novosibirsk: Publ. House “Parallel”, 2007. – 250 p; pp135-140.

6. Victor P. Ivannikov, Arutyun I. Avetisyan, Varvara V. Babkova, Alexander Yu.

Gubar “Tornado arising modeling using high performance cluster systems” // Sixth International Conference on Computer Science and Information Technologies (CSIT’2007), 24-28 September, Yerevan, Armenia, pp 56-59.

7. A.I. Avetisyan, V.V. Babkova, S.S. Gaissaryan, A.Yu. Gubar “Intensive Atmospheric Vortices Modeling Using High Performance Cluster Systems” // MTPP 2007 Parallel Computing Technologies First Russian-Taiwan Symposium Pereslavl-Zalesskii (Russia), September 2-3, 2007, LNCS, v. 4671/2007, pp 487495.

Pages:     | 1 | 2 ||






© 2011 www.dissers.ru - «Бесплатная электронная библиотека»