Диссертация (1105134), страница 14
Текст из файла (страница 14)
Разбиение матрицы по временной координате приводит к темже проблемам, что и в случае неосесимметричной задачи. Поэтому выполнялось разбиениематрицы по пространственной координате.Как и в случае неосесимметричной задачи, расчет нелинейных слагаемых и дисперсии невызывает проблем ввиду пространственной локальности этих факторов.Последовательный алгоритм расчета дифракции основывается на использовании методапрогонки, который не может быть явно распараллелен ввиду строгой последовательностив вычислении прогоночных коэффициентов на прямом ходе прогонки и амплитуд поля наобратном.
Существуют параллельные модификации алгоритма прогонки, однако их реализация весьма трудоемка, а эффективность не слишком высока [178, 179]. Подробно различныепараллельные реализации конечно-разностных методов решения задачи филаментации (втом числе основанные на прогонке) рассмотрены в [180].В связи с этим было решено воспользоваться тем фактом, что на шаге интегрированиятребуется выполнить дифракционных шагов, по одному на каждый временной слой импульса.
Это позволило использовать для распараллеливания конвейерную схему (рис. 2.3).На первом шаге конвейера работает только процесс I, который выполняет расчет прогоночных коэффициентов для своей части первого временного слоя. Затем он передает последниеr123233IIIIIIРис. 2.3. Конвейерная схема организации вычислений для нестационарной задачи филаментации в осесимметричной постановке. Черные точки — узлы расчетнойсетки. Римские цифры обозначают номер процесса. Арабскими цифрами обозначена последовательность шагов конвейера. Сплошные стрелки символизируют последовательность вычислительных операций (вычисление прогоночных коэффициентов) процессами, пунктирные стрелки — передачу данных между процессами.— 52 —рассчитанные прогоночные коэффициенты процессу II.
На втором шаге конвейера процессI начинает обрабатывать следующий, второй временной слой, а процесс II, получив прогоночные коэффициенты от процесса I, продолжает выполнять расчет прогоночных коэффициентов для первого временного слоя. По завершении расчетов процесс II передает данныепроцессу III, а процесс I — процессу II.По завершению прямой прогонки аналогичным образом, только в другом направлениивыполняется обратная прогонка.В [181] предлагалось использовать похожую конвейерную схему, но с распределением повременной координате или по продольной пространственной координате .
В первом случае различные вычислительные процессы отвечают за распространение различных временных отрезков импульса (например, первый процесс рассчитывает распространение переднихвременных слоев, а второй — задних). Во втором случае отдельный процесс рассчитываетраспространение всех временных слоев импульса, но на заданном отрезке трассы (например,первый процесс выполняет расчет распространения от 0 = 0 до , второй — от до 2и так далее).
Недостатком обоих схем является то, что у разных процессов одновременнохранится информация о световом поле разных временных слоев на разном расстоянии .В результате крайне затруднительной и ресурсоемкой становится реализация адаптивногошага интегрирования [176].Недостаток предложенной конвейерной схемы с распределением по поперечной координате состоит в небольшом времени простоя вначале, когда конвейер запускается и еще невсе процессы начали работу, и в конце, когда некоторые процессы уже завершили расчеты и ждут остальных.
Этот недостаток свойственен любой конвейерной схеме, однако когдаколичество процессов гораздо меньше количества временных слоев, относительные потеривремени на запуск и остановку конвейера невелики.Таким образом, использование конвейерной схемы организации расчетов позволило эффективно распараллелить осесимметричную задачу филаментации.2.6.5. Ускорение параллельных алгоритмовДля оценки эффективности распараллеливания используется величина ускорения алгоритма, которая равна отношению времени работы последовательного и параллельного алгоритмов.
На рис. 2.4а приведено ускорение параллельного алгоритма для осесимметричной задачи. Размер сетки был выбран близким к обычно использовавшимся в расчетах(21000 × 2048). Количество потоков варьировалось и было ограничено сверху количествомядер вычислительного узла (большее количество потоков не привело бы к ускорению расчетов).
На рис. 2.4б приведены графики ускорения для параллельного алгоритма с разбиениемпо поперечному сечению, использовавшемуся для решения стационарной и нестационарнойзадач в отсутствие осевой симметрии. В расчетах использовалась квадратные сетки. Длянестационарной задачи количество точек сетки по поперечным координатам обычно равнялось 2048.
Для стационарной задачи могли использоваться и большие сетки. Количествопроцессов было ограничено сверху не столько падением ускорения, сколько необходимостью— 53 —(а)(б)Рис. 2.4. Ускорение параллельных алгоритмов решения задачи филаментации в зависимости от количества используемых потоков или процессов. (а) — конвейерныйалгоритм для осесимметричной задачи, размер сетки ( × ) = (21000 × 2048),(б) — алгоритм с разбиением по поперечному сечению, размер квадратной сеткиварьировался и составлял (2048 × 2048), (4096 × 4096), (8192 × 8192).ожидания задачей свободных ресурсов вычислительного кластера, поскольку полное времярасчета складывалось из времени нахождения в очереди (которое тем больше, чем большересурсов нужно задаче) и собственно времени расчета.Ускорение конвейерного кода достигало величины 3, что связано, прежде всего, с последовательностью выполнения части кода, рассчитывающей дисперсию.
Несмотря на то, чтоэта часть также может быть распараллелена, это не было сделано из-за отсутствия необходимости. Время расчета было приемлемым и составляло порядка нескольких часов для задачифиламентации в сфокусированных пучках. Ускорение трехмерного кода достигало величины15. Время расчета доходило до нескольких суток.Все численные расчеты были выполнены на суперкомпьютерах «Чебышев» и «Ломоносов» НИВЦ МГУ.2.7. Тестирование программного кодаДля проверки корректности программного кода были использованы тестовые примеры,для которых известны аналитические или приближенные численные решения [97, 163, 182].К их числу относятся задачи линейной дифракции коллимированного и фокусированногогауссового пучка, дисперсии гауссового импульса, а также самофокусировки гауссового пучка.2.7.1.
Линейная задача дифракцииДля проверки корректности расчета дифракции в системах (2.55, 2.63, 2.67) занулялисьслагаемые, связанные с дисперсией, нелинейностями и поглощением излучения. В результате— 54 —уравнение распространения излучения имело вид20= ∆⊥ ,(2.103)где аргументами поля служили продольная пространственная координата , поперечныекоординаты и в отсутствии осевой симметрии или радиальная координата при ее наличии, а также временная координата для случаев нестационарной задачи.
Начальноеусловие задавалось в виде гауссового импульса со сфокусированным гауссовым профилемпучка:2 + 2 0 (2 + 2 )−202 2.(2.104)( = 0) = 0 В случае стационарной задачи временная часть отсутствовала, в случае осевой симметриивместо пары координат (, ) использовалась радиальная координата .Для линейной задачи дифракции метод Фурье дает точное (с точностью до вычислительной ошибки) решение задачи свободного распространения излучения при любом шаге∆, лишь только поле не доходит до границ рассматриваемой области.
Когда это условиенарушается и пучок уширяется до краев расчетной сетки, возникает отражение, искажающее точное решение. Схожий процесс происходит и в случае конечно-разностного метода,использующегося при решении осесимметричной задачи.На рис. 2.5 приведено сопоставление результата расчета и аналитического поведения максимальной интенсивности в импульсе. Длина волны излучения равнялась 744 нм, радиуспучка составлял 0.1 см, радиус кривизны был выбран равным 500 см.
Совпадение кривыхпозволяет говорить о корректности расчета дифракции.Рис. 2.5. Аналитическое решение (тонкая черная кривая) и численное решение(жирная серая кривая) для максимальной интенсивности в пучке, нормированнойна начальное значение, вдоль оси распространения при свободной дифракции. Параметры излучения: длина волны 744 нм, радиус пучка 0.1 см, радиус фокусировки500 см.— 55 —2.7.2. Линейная задача дисперсииДля проверки корректности расчета дисперсии в системах (2.55, 2.63) занулялись слагаемые, связанные с нелинейностями и поглощением излучения.
Для нейтрализации эффекта дифракции начальное условие задавалось в виде чирпированного гауссового импульса сплоским волновым фронтом:2· (1 + )220.( = 0) = 0 −(2.105)Закон дисперсии выбирался в виде: 2 (0 + Ω) = (0 + 1 Ω)2 + Ω2 .(2.106)Он обеспечивает дисперсию второго порядка, хотя и несколько отличается от обычного разложения волнового числа в ряд по частоте. Точное решение в таком случае будет иметьвид⎧⎫⎪⎪⎪⎪⎨⎬21(︂)︂ ,· exp −(2.107)(, ) = 0 √︂⎪ ⎪⎪⎪1+⎩ 202 1 + ⎭0 02играет роль комплексной дисперсионной длины (в случае(1 + )нулевого чирпа он становится обычной, вещественной дисперсионной длиной).На рис. 2.6 представлены результаты численного моделирования и аналитическое решение для максимальной интенсивности в импульсе.
Длина волны излучения равнялась 744 см,2длительность импульса 0 составляла 60 фс, параметр чирпа = 2 . Совпадение кривых0подтверждает корректность расчета дисперсии.где параметр =2.7.3. Самофокусировка гауссового пучкаРасстояние до нелинейного фокуса в коллимированном гауссовом пучке с мощностью,превосходящей , можно оценить по известной в литературе формуле Марбургера [182]0.3670 02= (︂(︁)︂1/2 .)︁21/2(/ ) − 0.852 − 0.0219(2.108)Формула Марбургера применима только для пучков гауссового профиля.