Содержание к диссертации
Введение
1 Постановка задачи 11
1.1 Сопряжённая задача динамики и аэрогидродинамики 13
1.2 Методы решения задачи механики 18
1.2.1 Идеальная среда 18
1.2.2 Вязкая среда 19
1.3 Требования к программной реализации 20
1.3.1 Производительность 20
1.3.2 Модифицируемость 21
1.3.3 Контролепригодность 22
1.3.4 Способность к взаимодействию 22
2 Численный алгоритм 25
2.1 Предварительные замечания 26
2.2 Обозначения 27
2.3 Вывод некоторых формул 31
2.3.1 Расход среды 31
2.3.2 Вклад угловой скорости в условие непротекания 34
2.4 Описание алгоритма 34
2.4.1 Общее описание алгоритма 35
2.4.2 Инициализация 36
2.4.3 Система линейных уравнений 39
2.4.4 Переход на следующий временной слой 44
2.4.5 Получение результатов расчёта 51
3 Архитектура и особенности 59
3.1 Высокоуровневая декомпозиция 60
3.1.1 Вычислительное ядро 60
3.1.2 Взаимодействие ядра с другими модулями 61
3.1.3 Препроцессор 62
3.1.4 Постпроцессор 62
3.1.5 Визуализация 63
3.1.6 Взаимодействие и размещение процессов 63
3.2 Архитектура вычислительного ядра 64
3.2.1 Разбор командной строки 64
3.2.2 Чтение файлов задания 65
3.2.3 Модуль «Пространство» 65
3.2.4 Модуль «Контейнер тел» 65
3.2.5 Модуль «Среда» 66
3.2.6 Модуль «Тело» 66
3.2.7 Модуль «Система уравнений» 67
3.2.8 Сохранение результатов 67
3.2.9 Вещественные числа 68
3.2.10 Протоколирование действий 68
3.3 Языки программирования и библиотеки 68
3.3.1 Языки программирования 69
3.3.2 Средства распараллеливания 70
3.3.3 Синтаксические анализаторы 72
3.4 Использование Т-системы 73
3.4.1 Т-система в среде Cygwin 73
3.4.2 MPI в среде Cygwin 75
3.5 Программы генерации тел различной формы 77
3.5.1 Цилиндр 78
3.5.2 Вертушка 80
3.5.3 Ротор Савониуса 81
3.5.4 Пластина конечной толщины 83
4 Результаты расчетов 86
4.1 Примеры решения различных задач 86
4.1.1 Вихрь Ламба 87
4.1.2 Цилиндр 94
4.1.3 Толстая пластина 94
4.1.4 Оперённый цилиндр 97
4.1.5 Эллиптический цилиндр 109
4.1.6 Тандемы из пластин и вертушек 114
4.1.7 Пластина и ротор Савониуса 118
4.2 Результаты распараллеливания 119
4.2.1 Сравнение Т-системы и MPI на гомогенном кластере 119
4.2.2 Сравнение Т-системы и MPI на гетерогенном кластере 123
Заключение 125
Список литературы
- Методы решения задачи механики
- Вклад угловой скорости в условие непротекания
- Взаимодействие ядра с другими модулями
- Эллиптический цилиндр
Введение к работе
Объект исследования и актуальность темы. Вихревые методы математического моделирования процессов аэрогидромеханики — одно из бурно развивающихся в последние десятилетия направлений. Идея этих методов базируется на фундаментальном свойстве завихренности: её независимости от таких динамических параметров, как давление. В моделях идеальной среды уравнения эволюции завихренности описывают условие сохранения циркуляции скорости на замкнутых жидких контурах (теоремы Гельмгольца). Указанное свойство легло в основу большого количества так называемых вихревых методов, которые позволяют удобно сформулировать задачу расчёта гидродинамических характеристик в лагранжевых координатах. Вихревые методы актуальны в ряде фундаментальных и прикладных направлений механики: аэрогидродинамика авторотации тел, машущего полёта, динамика парашюта, запылённые среды.
Вихревые методы являются мощным и эффективным инструментом теоретического исследования концентрированных вихревых структур. В этом случае они имеют ряд преимуществ по сравнению с традиционными конечно-разностными, конечно-элементными и псевдоспектральными подходами. С помощью вихревых методов решались многие задачи аэродинамики. В частности, применяя численный метод дискретных вихрей (МДВ), ряд авторов исследовали задачу о самовращении двумерной пластины, падающей в несжимаемой жидкости под действием силы тяжести [7]. Использование вихревого подхода позволяет формулировать и решать сопряжённые, или связанные, задачи, в которых рассматриваются системы твёрдое тело - среда без расщепления на динамическую и гидродинамическую составляющие. Постановка сопряжённых задач позволяет рассматривать тела с исчезающе малым моментом инерции. Многие задачи, представляющие практический интерес, можно рассматривать как сопряжённые: расчёт эффективности ветроустановок роторного и волнового типа, исследование авторотации и автоколебаний флюгеров, маятников и другие. Со-
временное состояние вопросов развития и использования вихревых методов отражено в обзоре [49] (до уровня 1988 г.), в монографии [12] (1995), в обзоре [61] (2005), а также в работе [82]. Тем не менее, до сих пор серьёзные трудности вызывают вопросы учёта вязкости жидкости. Применение вихревых методов для вязкой жидкости представляет затруднения потому, что циркуляция скорости по выделенному жидкому контуру не сохраняется из-за диффузии завихренности. В работе [86] даётся сравнение основных подходов к учёту вязкости в рамках вихревой постановки. В методе случайных блужданий [64] к конвективному смещению дискретного вихря добавляется случайное смещение с Гауссовым распределением вероятности. Модифицированный метод расширяющихся ядер [83] предполагает дробление вихревых элементов в качестве механизма диффузии. В методе перераспределения завихренности [84] для каждого вихревого элемента определяется завихренность, которая распределяется между его соседями. Метод диффузионной скорости [77,78] к конвективной составляющей смещения вихрей добавляет диффузионную, которую можно интерпретировать как притяжение и отталкивание вихрей.
Среди вихревых методов можно выделить метод вязких вихревых доменов (ВВД) [5,29,33,45]. Этот метод основывается непосредственно на уравнениях Навье-Стокса и позволяет корректно учитывать вязкость, сохраняя все преимущества вихревого подхода для решения плоских задач. По сравнению с наиболее близким к нему методом диффузионной скорости метод ВВД предлагает более удачный способ вычисления диффузионной скорости, который позволяет более точно описывать взаимодействие вихрей, предотвращая их чрезмерное слипание и поддерживая взаимное влияние дальних вихрей, а также предоставляет возможность обоснованно вычислять диффузионную скорость вихревых доменов, находящихся вблизи поверхности. Последнее обстоятельство, в свою очередь, позволяет рассчитывать силу трения, действующую на обтекаемые тела. Важным преимуществом используемой в методе модели является отсутствие неопределённых параметров. Более того, доказано, что в пределе при измельчении доменов и увеличении их количества их перемещение описывает эволюцию завихренности согласно двумерным уравнениям Навье-Стокса [5].
Препятствием для широкого распространения метода является отсутствие реализующего его программного пакета. Такой программный пакет должен преследовать две актуальные цели. Во-первых, он должен обеспечить возможность анализа самой методологии на основе ВВД, став инструментарием для исследования вихревого подхода. Во-вторых, он должен предусматривать возможность проведения расчётов ши-
рокого класса задач, позволяя, тем самым, применять метод ВВД на практике. Большинство программных реализаций созданы непосредственно «предметниками» — специалистами по вихревым методам — и предназначены для решения определённых, «фиксированных», задач аэрогидродинамики. Такие реализации направлены на удовлетворение узких функциональных требований и во многом упускают из рассмотрения другие, не менее важные требования.
В настоящее время программные средства должного уровня, реализующие метод ВВД, отсутствуют. В связи с изложенными выше обстоятельствами, объектом исследования являются вычислительные вихревые методы и математические модели взаимодействия тел со средой. Предметом исследования — вопросы их программной реализации. Целью диссертационной работы является эффективное отображение задач и методов аэрогидродинамики на современную вычислительную архитектуру. В соответствии с целью на пути её достижения были поставлены следующие конкретные задачи:
составление обобщённого алгоритма решения сопряжённой задачи аэрогидродинамики и динамики твёрдых тел;
формулировка требований к реализации программного комплекса;
разработка программной архитектуры;
разработка программного комплекса, реализующего метод ВВД;
тестирование комплекса и проведение исследовательских расчётов.
Научная новизна:
составлен обобщённый алгоритм, объединяющий метод дискретных вихрей (для идеальной среды), включая его модификацию с кратными цепочками вихрей [34], и метод вязких вихревых доменов (для вязкой среды);
на примере разработанного программного комплекса показана применимость средства автоматизированного динамического распараллеливания на основе Т-подхода [16] к задачам, представляющим практический интерес; проведено сравнение с решением на основе библиотеки параллельного программирования MPI;
получены новые численные решения задач нестационарного взаимодействия твёрдых тел со средой, в том числе сопряжённых задач динамики и аэрогидродинамики: моделирование отбора мощности оперённых цилиндров, сравнение скоростей вращения пластины и ротора Савониуса, моделирование вращения
гладких эллиптических цилиндров, сравнение трёхлопастной вертушки и тандема из пары вертушек.
Научная и практическая значимость:
обобщённый алгоритм может быть использован как основа для разработки более совершенных реализаций метода ВВД;
реализованный программный комплекс позволяет решать сопряжённые задачи динамики и аэрогидродинамики; комплекс применим в научных и инженерных расчётах, в частности, для исследования ветроустановок роторного типа;
программный комплекс используется в качестве тестовой задачи для демонстрации возможностей системы автоматизированного распараллеливания программ;
полученные с помощью программного комплекса результаты расчётов могут быть использованы в инженерных целях, а также для сравнения с другими методами.
На защиту выносятся следующие основные результаты:
Составлен алгоритм решения широкого класса связанных задач динамики твёрдых тел и аэрогидродинамики. Алгоритм обобщает метод вязких вихревых доменов, метод дискретных вихрей и метод кратных вихревых цепочек.
На основе алгоритма разработан программный комплекс, удовлетворяющий соответствующим требованиям по эффективности, модифицируемости и способности к взаимодействию.
На примере вычислительного ядра комплекса проведено сравнение библиотеки MPI и системы автоматизированного параллельного программирования Т-системы (версия NewTS). Показана применимость Т-системы к представляющим практический интерес задачам.
Получены численные результаты по моделированию обтекания оперённых цилиндров (вертушек) и их тандемов, гладких эллиптических цилиндров, ротора Савониуса и пластины конечной толщины.
Личный вклад соискателя. Основные результаты диссертационной работы получены автором самостоятельно. Работы [22-28] опубликованы без соавторов. Формулировка сопряжённой задачи динамики и аэрогидродинамики, а также составление алгоритма выполнены совместно с авторами метода вязких вихревых доменов. Разработка архитектуры и программной реализации программного комплекса, а также
описанные серии расчетов по моделированию сопряжённых задач выполнены соискателем самостоятельно.
Апробация работы. Результаты работы докладывались и обсуждались на следующих конференциях:
Четвёртая Международная школа-семинар «Модели и методы аэродинамики», МЦНМО, Москва, 2004;
Научная конференция «Ломоносовские чтения», секция механики, 19-28 апреля 2004 года, Москва, МГУ им. М.В. Ломоносова;
Конференция-конкурс молодых учёных, 12 октября - 14 октября 2004 года, Москва, НИИ механики МГУ;
Научная конференция «Ломоносовские чтения», секция механики, 2005 год, Москва, МГУ им. М.В. Ломоносова;
XIII Школа-семинар «Современные проблемы аэрогидродинамики» под руководством академика РАН Г.Г. Чёрного, 5-15 сентября 2005 года, Сочи, «Буревестник», МГУ им. М.В. Ломоносова;
Конференция-конкурс молодых учёных, 12-17 октября 2005 года, Москва, НИИ механики МГУ;
XVII Международная Интернет-конференция молодых учёных и студентов по проблемам машиноведения (МИКМУС-2005), 2005 год, Москва, ИМАШ РАН;
Международная конференция «Нелинейные задачи теории гидродинамической устойчивости и турбулентность», 2006 год, Москва, МГУ им. М.В. Ломоносова;
Научная конференция «Ломоносовские чтения», секция механики, 12-28 апреля 2006 года, Москва, МГУ им. М.В. Ломоносова;
IX Всероссийский съезд по теоретической и прикладной механике, 22-28 августа 2006 года, Нижний Новгород, Нижегородского госуниверситета им. Н.И. Лобачевского;
XIV Школа-семинар «Современные проблемы аэрогидродинамики» под руководством академика РАН Г.Г. Чёрного, 6-16 сентября 2006 года, Сочи, «Буревестник», МГУ им. М.В. Ломоносова;
Конференция-конкурс молодых учёных, 1-18 октября 2006 года, Москва, НИИ механики МГУ;
XVIII Международная Интернет-конференция молодых учёных и студентов по проблемам машиноведения (МИКМУС-2006), 27-29 декабря 2006 года, Москва, ИМАШ РАН;
XVIII Школа-семинар «Аэродинамика летательных аппаратов», 2007 год, пос. Володарка, ЦАГИ;
XV Международная конференция по Вычислительной механике и современным прикладным программным системам (ВМСППС'2007), 25-31 мая 2007 года, г. Алушта, Крым;
Конференция-конкурс молодых учёных, 10 - 16 октября 2007 года, Москва, НИИ механики МГУ.
Кроме того, результаты докладывались и обсуждались в МГУ имени М.В. Ломоносова на семинаре «Проблемы современных информационно-вычислительных систем» под руководством д.ф.-м.н., проф. В. А. Васенина и на семинаре кафедры газовой и волновой динамики под руководством академика РАН Е. И. Шемякина. Работа докладывалась на семинаре Института математического моделирования РАН.
Программный комплекс официально зарегистрирован под названием «Ротор» («Vortex») в Федеральной службе по интеллектуальной собственности, патентам и товарным знакам (свидетельство об официальной регистрации программы для ЭВМ №2007612503).
Публикации. По теме диссертации опубликовано 10 статей, 3 отчёта по научно-исследовательской работе НИИ механики МГУ. Основные результаты содержатся в работах [2,23,25,27,28,35,56].
Методы решения задачи механики
В качестве метода решения используется метод вязких вихревых доменов. Производится дискретизация задачи по времени и пространству. Завихренность представляется вихревыми элементами — доменами. Каждый домен характеризуется некоторой точкой, указывающей на его положение, и интенсивностью (циркуляцией) 5. Он движется относительно среды с диффузионной скоростью, обусловленной влиянием остальных доменов и отталкиванием от границ тел.
На каждом шаге по времени со всей поверхности тел в среду сходят вихревые элементы, циркуляции которых определяются из условий непротекания, сохранения суммарной завихренности и уравнений динамики.
По распределению завихренности, положению и скоростям тел восстанавливаются другие физические параметры: силы, давления, скорости в среде и прочие.
По сравнению с классическим методом дискретных вихрей [12] в реализации метода ВВД имеется несколько отличий. Во-первых, в классическом случае сход вихревых элементов происходит с заданных кромок, а не всей поверхности. Во-вторых, к конвективной составляющей скорости вихревых элементов добавляется диффузионная составляющая.
Как уже упоминалось, до настоящего времени программные реализации, основанные на методе ВВД, были сосредоточены на реализации определённого функционала. Вместе с тем существует ряд важных требований по качеству, которым должна удовлетворять современная программная реализация. В контексте текущей работы эти качества следуют из двух основных мотивов. Во-первых, создаваемая программа должна быть инструментом для исследования и верификации самого метода ВВД и его модификаций. Во-вторых, реализация должна позволять проводить расчёты, необходимые для решения практических задач, входящих в сферу применимости метода.
В задачах внешнего обтекания тела, являющихся важным подмножеством решаемых методом ВВД задач, а также в некоторых других, в процессе моделирования число вихревых элементов N растёт с линейной скоростью. Проведём эмпирические рассуждения, иллюстрирующие это утверждение. Рассмотрим классическую задачу моделирования дальнего вихревого следа за мгновенно стартовавшем с единичной скоростью цилиндром [86]. На каждом шаге по времени рождается фиксированное число вихревых элементов. Существует два пути исчезновения вихревого элемента: попадание внутрь тела, объединение с близким вихрем. Вихри, сошедшие с задней части цилиндра, сносятся вниз по течению и не пересекают границ тела. На достаточно большом от цилиндра расстоянии плотность вихревых элементов в следе такова, что они перестают соударяться (и объединяться). Кроме того, ограничением аннигиляции является запрет объединения слишком больших (по модулю циркуляции) вихрей. По этой причине число свободных вихревых элементов пропорционально длине вихревого следа, который растёт линейно по времени.
При моделировании одного шага по времени требуется пересчёт положения вихревых элементов. Скорость каждого элемента получается как сумма скоростей, индуцированных всеми остальными элементами. Прямой расчёт полного поля скоростей имеет сложность порядка 0(N2). Для многих задач сложность моделирования системы в течение времени t оказывается порядка 0(3). Опыт применения ВВД показал, что на современных персональных компьютерах время проведения одного расчёта составляет от нескольких часов до нескольких суток.
Таким образом, требование производительности является важным в контексте рассматриваемой программной реализации. Количественной мерой производительности является время от момента задания пользователем входных параметров до получения результатов расчётов.
Изменчивость — один из факторов, обуславливающих сложность создания программного обеспечения (ПО), поэтому обеспечение модифицируемости является важным атрибутом его качества. В то же время «как бы тщательно ни разрабатывалось ПО, всегда будет существовать точка, где ПО уже нельзя будет легко изменить» [43]. По этой причине важно определить, какого рода модифицируемости необходимо достичь. Критериями модифицируемости служат локализованность изменений, которые необходимо внести, а также размер этих изменений.
Метод ВВД — относительно новый, развивающийся. Возможны различные алгоритмы решения возникающих вспомогательных задач. Например, существенной отличительной особенностью метода является вычисление для каждого вихревого элемента параметра є диффузионной скорости. Существует несколько вариантов расчёта этого параметра. Он может равняться расстоянию до ближайшего вихря или до нескольких ближайших вихрей. Существуют различные подходы к предотвращению проникновения вихревых элементов внутрь тела (нарушения так называемого условия «непротыкания» [42]). Таким образом, имеет смысл говорить о семействе методов вязких вихревых доменов, различия между которыми обусловлены модификациями и различными подходами к решению частных задач. Разрабатываемая программная реализация должна допускать такие изменения метода.
Вклад угловой скорости в условие непротекания
Рассмотрим этап инициализации.
Каждое тело представляется в виде замкнутой ломаной без самопересечений, обходимой в положительном направлении. В узлах ломаной находятся центры вихревых элементов. Контур тела задаётся набором центров вихревых элементов. Пользователь задаёт угол поворота и координату выделенной точки в начальный момент времени. Тело смещается и поворачивается в соответствии с этими настройками.
Для каждого тела рассчитывается момент инерции тела и жидкости в его объёме, объём контура тела (площадь), положение центра масс, диаметр тела. Все эти параметры остаются постоянными и могут быть вычислены один раз (центр масс остаётся жёстко связан с телом). Определяются глобальные параметры такие, как минимальное расстояние между соседними присоединёнными вихрями.
Решается так называемая предварительная задача [56] для отыскания присоединённой завихренности, соответствующей скачку скорости с внутренней стороны контура тела в том случае, если тело вращается. Полученная завихренность используется в дальнейших вычислениях.
Перед началом основного цикла моделирования все присоединённые циркуляции, угловые и поступательные скорости тел обнуляются.
Основной цикл моделирования выглядит следующим образом: составляется и решается система уравнений, состоящая из условия непротекания в текущий момент времени, условия на суммарную циркуляцию в текущий момент времени, уравнений моментов в текущий момент времени (возможно), уравнений импульса в текущий момент времени (возможно); в результате решения системы получаются текущие приращения суммарных циркуляции присоединённых вихрей и, возможно, составляющие скорости тел; вычисляются текущие значения присоединённых завихренностей, с тел сходят свободные вихри; определяются текущие давление в среде, силы и моменты, действующие на тела, и другие заданные характеристики; выполняется контроль точности и сохранение результатов; в случае необходимости моделирование завершается;
Предварительная задача состоит в отыскании внутренней завихренности, соответствующей скачку скорости на поверхности тел. Для каждого тела эта завихренность пропорциональна угловой скорости и определяется геометрией тела. По этой причине предварительная задача решается один раз, а затем, на каждом шаге алгоритма, полученный результат умножается на текущую угловую скорость.
Пусть в среде свободная завихренность отсутствует. Тела вращаются с единичной угловой скоростью (каждое — вокруг своей выделенной точки). Исходя из условий непротекания и суммарной циркуляции (см. 2.4.3, 2.4.3) находятся присоединённые циркуляции rfc = ДГ. Внутренняя циркуляция в &-ой точке выражается формулой
Поскольку свободная циркуляция отсутствует, V/k — скорость, индуцированная в точке к всеми остальными присоединёнными вихрями.
Альтернативно можно рассматривать другую постановку предварительной задачи. Для каждого тела решается своя система уравнений, a Vjk обозначает скорость, индуцированную всеми остальными вихрями только этого тела. Такая постановка менее удобна для программной реализации.
На каждом временном шаге алгоритма составляется и решается система линейных уравнений. В качестве неизвестных выступают циркуляции на поверхности тел, а также приращения поступательной и вращательной скоростей тел (если соответспвующие законы движения не заданы). Рассмотрим уравнения, из которых строится система.
Условие непротекания
Условие непротекания ставится в интегральной форме. Требуется, чтобы поток конвективной скорости через каждый отрезок контура тела был нулевым. При этом система уравнений оказывается вырожденной. Для интегрального закона непротекания оказалось возможным исключать из рассмотрения произвольный отрезок контура. В частности, было проведено методическое исследование. Рассмотрено решение системы линейных уравнений для задачи об обтекании толстой пластины при наличии свободной завихренности в пространстве. В первом случае не учитываемый в условии непротекания отрезок брался на скруглении пластины, во втором — в центре продольной её части. Найденные решения представлены на графике 2.2. По осям абсцисс и ординат (в различном масштабе) отложены точки контура пластины, по оси аппликат представлены найденные циркуляции. Решения полностью совпадают.
Взаимодействие ядра с другими модулями
Вычислительное ядро получает задание в формате XML. Для подготовки файла задания можно воспользоваться любым текстовым или XML-редактором, а также программами верификации XML-файлов. С точки зрения используемых вычислительных алгоритмов тело задано контуром, который аппроксимируется замкнутой ломаной линией. Ломаная опеределяется набором вершин, которые очевидным образом представляются элементам (nodes) XML-разметки. Конечный пользователь оперирует с более высокоуровневым описанием контура тела, чем замкнутая ломаная. На практике представляет интерес рассмотрение цилиндров (окружностей), полуцилиндров (полуокружностей), оперённых цилиндров, пластин, крыловых профилей и других форм. Из изложенного выше вытекает необходимость использования препроцессора, который бы преобразовывал соответствующие контуры в аппроксимирующие их ломаные линии. В этой связи было принято архитектурное решение по разработке набора программ, каждая из которых генерирует описание определённого тела (например, цилиндра), с заданными параметрами (например, шагом дискретизации). Набор этих программ составляет препроцессор. Конкретные алгоритмы построения тел будут рассмотрены ниже (см. 3.5). Необходимо отметить, что они просты как с вычислительной точки зрения (хорошая производительность достигается без применения специальных мер), так и с точки зрения реализации (модифицируемость функциональности препроцессора достигается переписыванием либо добавлением новой программы).
Программы обычно выполняются локально. Результат их работы (конфигурационные файлы тел) используются вычислительным ядром, но в период прогона связь между ядром и препроцессором отсутствует.
Результаты расчётов должны обрабатываться специализированным программным обеспечением. Однако во многих случаях сценарий обработки одинаков. Например, зная на различных шагах по времени распределение вихревых элементов и положение тел, можно визуализировать моделируемую систему. Каждый шаг по времени можно представить графическим изображением, весь процесс - видеороликом. Подобные, общеупотребимые, сценарии обработки результатов лежат в основе постпроцессора.
Как и в случае с препроцессором производительность достигается простотой ал горитмов, а модифицируемость — простотой реализации. Программы выполняются локально. Связь с вычислительным ядром в период прогона отсутствует.
Для контроля над процессом моделирования и первоначального анализа результатов представляется полезным визуализировать процесс расчёта в режиме реального времени. Модуль визуализации, очевидно, должен исполняться локально. Таким образом, возможна ситуация, при которой модуль визуализации и вычислительное ядро функционируют на разных компьютерах (ядро выполняется удалённо), причём ядро должно передавать данные о текущем состоянии моделируемой системы. Было принято решение об использовании архитектурного образца «клиент-сервер». В роли сервера выступает производитель данных — вычислительное ядро. Клиент — модуль визуализации. Предполагается, что визуализация нужна исключительно пользователю, запустившему расчёт, поэтому от сервера не требуется поддержки более одного клиента. Взаимодействие происходит по сети, в качестве транспортного протокола используется TCP [32].
На рисунке 3.1 показано взаимодействие процессов в период прогона программы. Пунктирными стрелками обозначена передача данных через файлы. Работа принимающей файл программы начинается после того, как закончилось выполнение создающей файл программы. Сплошной стрелкой обозначена передача данных по сети, эта передача осуществляется в период прогона поставщика и потребителя данных.
Средствами препроцессора и сторонними программами создаются файлы заданий и геометрий тел. С точки зрения ядра, не имеет значения, где и когда эти файлы созданы. Можно считать, что эти файлы создаёт пользователь программного комплекса на своём рабочем компьютере. Вычислительное ядро производит данные в виде файлов с результатами расчёта, которые обрабатываются средствами постпроцессора и сторонними программами. Дополнительно в зависимости от параметров запуска ядро может предоставлять данные модулю визуализации в период прогона. Взаимодействие ядра и модуля визуализации происходит по сети, поскольку для длительных по времени запусков вычислительное ядро функционирует на удалённом высокопроизводительном компьютере, тогда как модуль визуализации всегда работает локально.
Эллиптический цилиндр
В работе [18] проведены измерения производительности программного комплекса «Ротор» (англоязычное название «Vortex») при распараллеливании средствами Т системы (реализация NewTS). В настоящее время проведены аналогичные расчёты для вычислительного ядра, скомпилированного для работы с библиотекой MPI. Далее приводятся сведения, отражающие результаты обеих серий расчётов.
Испытания проводились на вычислительном кластере МВС-15000М, расположенном в Межведомственном суперкомпьютерном центре РАН (МСЦ РАН). Кластер состоит из 574 узлов, оборудованных двумя процессорами PowerPC 970 2.2 ГГц. В качестве коммуникационной сети используется Myrinet. Кластер работает под управлением ОС SUSE Linux.
Результаты тестирования приведены в таблице 4.8. Эффективность (КПД) рассчитывалась по формуле КПД = Ti/(N pf). Для запуска использовались следующие параметры: start=20.0, stop=20.1, step=0.05, reyn=1000. Моделировалось движение двух тел, заданных конфигурационными файлами vert4_05.xml и circ_plus.xral, входящими в дистрибутив комплекса.
В работе [18] проведен анализ полученных временных результатов для Т-системы.
Как видно из таблицы 4.8 и на графике 4.42, ускорение существенно отличается от линейного. Этот факт объясняется следующим образом. Каждый шаг вычислений в программе Vortex состоит из двух фаз. При распараллеливании Vortex с помощью NewTS первая фаза выполняется последовательно на нулевом узле, вторая — параллельно на всех доступных узлах. Такое распределение нагрузки вызвано особенностью алгоритма, используемого в первой фазе. В текущей версии Vortex первая фаза вычислений реализована в виде одной большой Т-функции, что не позволяет NewTS её распараллеливать. Для выполнения второй части запускается несколько Т-функций, которые автоматически распределяются между узлами.
Представляет интерес оценка времени работы Vortex с учётом отмеченного выше обстоятельства. Непосредственные измерения показали, что при выбранных параметрах запуска последовательная часть составляет 26,9 с, а параллельная — 268,5 с. Время работы параллельной программы на N узлах может быть оценено снизу с помощью закона Амдала: Т где T/v - время счета на N узлах, Трлт — время работы параллельной части, Tseq — время работы последовательной части. Обозначим правую часть данного неравенства через Tm-m(N). Численные значения Tmin приведены в третьей строке таблицы 4.8. Полученные значения времени работы близки к Гт;п, что позволяет сделать вывод о том, что NewTS достигает высокой утилизации в рамках того параллелизма, который имеется в исходном алгоритме задачи.
Относительная доля последовательной части составляет 10 % программы, поэтому она не может быть ускорена более чем в 10 раз. При других входных данных и параметрах расчёта будут получаться другие численные значения. Однако практика показывает, что предел ускорения Vortex составляет несколько десятков раз (или меньше), поэтому запускать Vortex на большем числе узлов не представляется целесообразным. Для получения более высоких показателей эффективности необходимо изменение алгоритма.
Параллельные реализации средствами Т-системы и MPI выполнены по общей схеме, в которой параллельная часть вычислений равномерно распределяется между всеми вычислительными узлами. Как и следовало ожидать, качественно ускорение для MPI и Т-системы совпадают. Количественные характеристики MPI несколько лучше. Этот факт объясняется тем, что принятая схема распараллеливания не соответствует идеологии Т-системы, реализация схемы требует дополнительных накладных расходов. В частности, это объясняется тем, что при реализации численных алгоритмов средствами Т-системы часто не удаётся избежать излишнего копирования массивов данных при передаче их в Т-функции и получении из Т-функций в качестве результатов.
Исходя из проведённого сравнения, можно сделать вывод, что Т-система менее пригодна для данной задачи при использованной схеме распараллеливания. В целом же Т-система показала свою работоспособность. Практическое её использование потребовало небольших изменений в программном коде. Эти изменения локализованы и оформлены с помощью опций условной компиляции.