Труды КНЦ вып.9 (ГЕЛИОГЕОФИЗИКА вып. 5/2018(9))

Алгоритм вычисления коэффициента молекулярного поглощения В данной работе коэффициент поглощения для узких спектральных каналов с шириной 0.001 см-1 в атмосфере Земли вычисляется как сумма коэффициентов поглощения семи газов, среди которых метан, углекислый газ, водяной пар, азот, озон, кислород и окись азота по формуле: где a - сорт молекул, na - концентрация молекул сорта a , <Ta ( V ) - сечение поглощения молекулы сорта a .Коэффициентымолекулярного поглощения этих семи газов рассчитываются с использованием спектроскопической базы данных HITRAN 2012 [1] по стандартной теории. Согласно этой теории на каждой частоте вклады в коэффициент поглощения различных линий поглощения суммируются при условии обрезания крыльев линий на расстоянии 25 см-1от центра линии. Для водяного пара и углекислого газа к этой сумме прибавляется дополнительное слагаемое, называемое сечением континуального поглощения. Зависимость сечения континуального поглощения от частоты излучения, а также давления и температуры воздуха задают с помощью эмпирических моделей, построенных в результате сравнения экспериментальных данных и теоретических расчетов. Мы использовали эмпирическую модель MT CKD [2]. Главная трудность вычисления коэффициента молекулярного поглощения состоит в том, что в заданном частотном интервале число линий поглощения для некоторых газов может превышать 100 000, причем вклад каждой линии поглощения на каждой высоте (с учетом обрезания крыльев линий) необходимо вычислять в 50 000 узлах сетки по частоте. Результатом этих расчетов является двумерный массив коэффициентов молекулярного поглощения, одно измерение которого - по частоте, а другое - по высоте. Размерность по частоте может составлять более 4 000 000 узлов сетки, в зависимости от рассчитываемого частотного диапазона, а размерность по высоте - около 400 узлов сетки. Проведение таких расчетов без использования технологий распараллеливания требует больших временных затрат. Авторами представленной работы было реализовано несколько алгоритмов расчета коэффициента молекулярного поглощения с использованием параллельных вычислений на графических ускорителях. Среди этих способов наиболее эффективным по скорости вычислений оказался тот, в котором каждая вычислительная нить (CUDA - ядро видеокарты) рассчитывает вклад в коэффициент поглощения одной линии поглощения заданного газа в интервале частот шириной 50 см-1 на заданной высоте. Таким образом, вклады всех линий в коэффициент молекулярного поглощения для одного газа на заданной высоте рассчитываются параллельно. Этот способ предполагает создание внешнего цикла по высоте, на каждой итерации которого вызывается функция вычисления сечений поглощения молекулы сорта a , реализованная на видеокарте (CUDA- функция). Время, которое тратится на вызов CUDA-функции мало по сравнению со временем работы этой функции, поэтому многократные вызовы CUDA- функции незначительно влияют на скорость работы программы. При таком способе распараллеливания возможна ситуация, когда разные нити обращаются к одной ячейке памяти при записи значений коэффициента поглощения. Для того чтобы не произошло потери или «затирания» значений (1) a 185

RkJQdWJsaXNoZXIy MTUzNzYz