Диссертация (1105134), страница 13
Текст из файла (страница 13)
Размер сетки, таким образом, должен быть в 10–12 раз больше радиуса пучка0 , а шаг сетки — как минимум на порядок меньше диаметра филаментов и плазменных каналов. Оценив радиус пучка величиной 2 мм, а диаметр каналов — величиной 20 мкм, получимполное число точек по поперечной координате = ≃ 104 .Количество точек по временной координате можно оценить из тех же соображений, считая длительность импульса равной 100 фс, а минимально необходимое временное разрешениеравным 1 фс. В результате, ≃ 103 .Таким образом, полное число точек расчетной сетки достигает величины 1011 . Для хранения всей трехмерной матрицы значений поля потребуется порядка 1.5 Тбайт оперативнойпамяти.
Кроме того, число шагов интегрирования по эволюционной координате достигает 103 –104 , что приводит к необходимости использования распределенных вычислений и— 48 —параллельных алгоритмов для работы с данными. Основной архитектурой для проведениявычислений в таком случае будут системы с массовым параллелизмом — вычислительныекластеры, в которых большое количество вычислительных узлов объединены общей коммуникационной сетью.Основным при построении параллельного алгоритма является вопрос разделения данных между работающими процессами или потоками.
Разница между процессами и потокамисостоит в том, что процессы могут быть запущены на различных вычислительных узлахкластера. При этом один процесс не будет иметь прямого доступа к оперативной памятидругого, в связи с чем необходимо выполнять передачу данных между расчетными узлами. Потоки же работают в рамках общей памяти, что, однако, сильно ограничивает масштабируемость, поскольку максимальное количество независимых вычислительных ядер насовременных процессорах обычно не превосходит 8–16.Ниже мы рассмотрим построение параллельных алгоритмов решения стационарной задачи самофокусировки и нестационарной задачи филаментации при наличии и при отсутствииосевой симметрии, во всех случаях предполагая работу на системе с разделенной памятью.2.6.2.
Стационарная задачаВ стационарной задаче отсутствует временная координата, поэтому объем хранимых и обрабатываемых данных по полю уменьшается и достигает величины 1–10 Гбайт. Вычисленияс таким объемом данных уже могут быть проведены на современных персональных компьютерах. Однако и здесь технологии параллельного программирования способны существенносократить время расчета за счет одновременного расчета задач с разными параметрами илипри наборе статистики.Поскольку матрица поля , двумерная, ее проще всего разделить на отдельные полосы, при этом каждый процесс будет хранить в памяти только свою полосу (рис.
2.1).Распределение данных между процессами требует изменение расчетного алгоритма. Учеткерровской нелинейности (2.5.4) остается без изменения, поскольку она является локальнойпо пространству, то есть для вычисления нелинейного фазового набега в заданной точке( , ) необходимо знать только значения поля в этой же точке, но не в соседних.Алгоритм вычисления шага дифракции необходимо изменить. Для параллельного вычисления двумерного преобразования Фурье на распределенной подобным образом матрицеиспользовалась готовая свободно распространяемая библиотека FFTW [175].
Помимо выполнения прямого и обратного параллельного дискретного быстрого преобразования Фурьенеобходимо было провести вычисления по формуле (2.83) (без учета дисперсионного вклада),причем матрица углового спектра поля ( , ) также является распределенной по координате . Однако, как нетрудно видеть, в угловом пространстве дифракция оказываетсялокальной, то есть для расчета значения углового спектра в некоторой точке ( , ) на новом шаге по необходимо значение спектра на предыдущем шаге только в той же самойточке. Поэтому необходимости в использовании низкоуровневых операций обмена даннымис соблюдением обязательных условий синхронизации процессов не возникает.— 49 —Рис.
2.1. Схема распределения данных в поперечном сечении пучка между процессами. Черные точки — узлы сетки. Римской цифрой обозначен номер процесса,серая область — узлы сетки, принадлежащие соответствующему процессу. Круглая область схематически изображает апертуру лазерного пучка.Таким образом, для стационарной задачи вопрос распараллеливания алгоритма решаетсяпутем использования параллельного преобразования Фурье из готовой библиотеки.В типичных расчетах использовалось от 8 до 32 расчетных узла, которыми выступалипроцессорные ядра.2.6.3. Нестационарная задача филаментации при отсутствии радиальной симметрииВ случае полной задачи филаментации необходимо распределить между процессами трехмерную матрицу ,, .
В [176, 177] была предложена схема распределения данных по временной координате . Каждый процесс получал несколько подряд идущих временных слоевимпульса. На иллюстрирующем эту идею рис. 2.2а первый процесс рассчитывает распространение первый двух временных слоев, второй процесс — двух задних временных слоев.Схема с распределением по временной координате обладает существенным недостатком.
Дело в том, что в уравнении для концентрации электронов (2.55b) присутствует зависимостьзадних временных слоев от предыдущих. Плазма, накопленная передними слоями, дефокусирует излучение в последующих временных слоях, что не позволяет проводить вычислениеполя в более поздних слоях, пока не завершаться расчеты во всех предшествующих. Фактически, это не позволяет распараллелить вычисления, и вместо одновременной работы надзадачей процессы будут работать строго по очереди.Было предложено организовать конвейерную схему распараллеливания, при которой разные временные слои находятся на разном расстоянии , то есть пока некоторые процессывыполняют расчет значений амплитуды поля для заднего фронта импульса на некоторомрасстоянии 1 , другие процессы рассчитывают распространение переднего фронта на рас— 50 —XXIYYIIIII(а)(б)Рис.
2.2. Схема распределения данных для полной задачи филаментации на примере использования двух процессов. Передним временным слоям соответствуетменьшее значение . Черные точки — узлы сетки. Римской цифрой обозначен номер процесса. Эллиптическая область схематически изображает лазерный импульс. Приведены распределения по временной координате (а) и по поперечнойпространственной координате (б).
Расчетная сетка равномерна по всем направлениям, в (б) расстояния между точками по оси увеличены для наглядностиразбиения данных между процессами.стоянии 2 > 1 .Из-за того, что в каждый момент расчета разные временные слои импульса находятся наразном расстоянии , в конвейерной схема крайне затруднительно организовать учет дисперсии конечно-разностными методами и невозможно — спектральным. Кроме того, посколькупервыми испытывают самофокусировку центральные временные слои импульса, как содержащие пиковую мощность, необходимость уменьшить шаг интегрирования возникает тогда,когда временные слои переднего фронта уже прошли соответствующий отрезок трассы. Поэтому для организации расчета с использованием адаптивного шага приходится сохранятьтекущее состояние амплитуд поля в постоянной памяти (например, на жестком диске) изагружать это состояние при необходимости уменьшить шаг.
Это сильно замедляет работупрограммы.Таким образом, причинная связь между временными слоями импульса (передние слоивлияют на задние через наведенную плазму) препятствует эффективному распараллеливанию алгоритма в схеме с распределением данных по временной координате. Поэтому врасчетах использовалась схема с распределением по поперечной пространственной координате (рис. 2.2б). При таком распределении матрицы каждому процессу выделяется частьпоперечного сечения пучка в виде полосы. Для каждой точки поперечного сечения ( , )процесс имеет все временные слои импульса (то есть все точки ( , , ), = 0, − 1).Поэтому расчет нелинейностей и дисперсии происходит локально, то есть не требует данныхдругого процесса.Расчет дифракции при распределении трехмерной матрицы поля по поперечной пространственной координате отличается от расчета дифракции в стационарной задаче 2.6.2— 51 —только необходимостью последовательно выполнить шаг дифракции для всех временныхслоев.В расчетах использовалось не менее 64 расчетных узлов вследствие ограничения по оперативной памяти.
Время одного расчета варьировалось от нескольких часов до несколькихсуток.2.6.4. Нестационарная задача филаментации при наличии радиальной симметрииДля использования параллельных вычислений при решении нестационарной задачи филаментации в осесимметричной постановке необходимо провести распределение двумернойматрицы поля , = ( , ).