240 likes | 469 Views
Параллельные Вычислительные Технологии ПАВТ-2009. Реализация региональной атмосферной модели на вычислительных системах гибридной архитектуры. Д. Н. Микушин В. М. Степаненко. МГУ им. М.В. Ломоносова Научно-исследовательский Вычислительный Центр. Параллельные Вычислительные Технологии
E N D
Параллельные Вычислительные Технологии ПАВТ-2009 Реализация региональной атмосферной модели на вычислительных системах гибридной архитектуры Д. Н. Микушин В. М. Степаненко МГУ им. М.В. Ломоносова Научно-исследовательский Вычислительный Центр
Параллельные Вычислительные Технологии ПАВТ-2009 План • Региональная атмосферная модель и её приложения • Компоненты модели, профилирование • MPI-реализация • Явные схемы уравнений динамики, термодинамики и радиации: локальность вычислений • Решение эллиптического уравнения: транспонирование расчётной области • Cell-реализация • Одномерные циклы, шаблоны памяти • Вычисление правой части для эллиптического уравнения • Явная схема для уравнения переноса • Перспективы развития
Параллельные Вычислительные Технологии ПАВТ-2009 Моделирование региональных атмосферных циркуляций Обтекание воздушным потоком горного рельефа (Miranda and James, 1992)
Параллельные Вычислительные Технологии ПАВТ-2009 Моделирование региональных атмосферных циркуляций • Виды бризовых циркуляций: • морской бриз • городской бриз • ледовый бриз • и др. • (Langlandetal., 1989) • Рост концентрации вредных примесей в приземном слое атмосферы • (Eastmanetal., 1995)
Параллельные Вычислительные Технологии ПАВТ-2009 Моделирование морского бриза(С. В. Ткачук) Черноморское побережье Кавказа Взаимодействие морского бриза с горно-долинными циркуляциями Height, m Временной ход температуры в приземном слое по результатам модели и данным измерений
Параллельные Вычислительные Технологии ПАВТ-2009 Атмосферная динамика Вертикальное перемешивание Микрофизика облачности и осадков Модель подстилающей поверхности Атмосферная термодинамика Радиационное излучение Модель внутренних водоёмов
Параллельные Вычислительные Технологии ПАВТ-2009 Особенности реализации для MPI • Информационная зависимость алгоритмов • по вертикальной координате: • прогонки • радиационный блок • Двумерная декомпозиция расчетной области • Высокая связанность задачи – большое количество обменов
Параллельные Вычислительные Технологии ПАВТ-2009 Декомпозиция и обмены в явных схемах Y Пример шаблона: явная схема + фильтрация Обмены граничными элементами массивов Подобласть процесса X
Параллельные Вычислительные Технологии ПАВТ-2009 Решение уравнений движения на кластере “Чебышев” Сверхлинейноеускорение за счёт кеширования
Параллельные Вычислительные Технологии ПАВТ-2009 Расчёт термодинамики и радиации на кластере “Чебышев” Ускорение близко к линейному
Параллельные Вычислительные Технологии ПАВТ-2009 Решение эллиптического уравнения на кластере “Чебышев” 1) TRANS_XY_YZ БПФпо оси X TRANS_YZ_XZ БПФпо оси Y 2) TRANS_XZ_XY 3) σ Y X
Параллельные Вычислительные Технологии ПАВТ-2009 Решение эллиптического уравнения на кластере “Чебышев” Насыщение на 100 процессорах
Параллельные Вычислительные Технологии ПАВТ-2009 Особенности реализации для CBEA 5) Repeat for each piece of N Data . . . Results . . . . . . . . . . . . . . . . . . 4) Transfer results into main memory 3) Compute partial results 1) Transpose: N pieces per SPU 2) Fetch some pieces to SPUs 6) Repeat for each iteration
Параллельные Вычислительные Технологии ПАВТ-2009 Особенности реализации для CBEA Обмен данными только между SPU и PPU (между SPU нет обменов) Декартово разбиение (как в случае MPI) не нужно σ Y nv = nxny ns 0 X
Параллельные Вычислительные Технологии ПАВТ-2009 Автоматический обмен данными // 32 FLOPS constdouble ppdx = (*_P(_R(pp3)) - *_P(_L(pp3))) / (dx2 * *_P(_C(pp3))), ppdy = (*_P(_U(pp3)) - *_P(_D(pp3))) / (dy2 * *_P(_C(pp3))), ppgra2 = ppdx * ppdx + ppdy * ppdy, pplap = ((*_P(_R(pp3)) + *_P(_L(pp3)) - 2. * *_P(_C(pp3))) / dxx + (*_P(_U(pp3)) + *_P(_D(pp3)) - 2. * *_P(_C(pp3))) / dyy) / *_P(_C(pp3)), p = ptop + sigma0[is] * *_P(_C(pp3)), dtsdsi = (*_F(tems) - *_B(tems)) / (ds02a[is] * *_C(tems)), alfa = ptop / p + sigma0[is] * dtsdsi, beta = -ptop * *_P(_C(pp3)) / (p * p) + dtsdsi * (1. + sigma0[is] * dtsdsi) + sigma0[is] * ((*_F(tems) - *_C(tems)) / ds0[is+1] - (*_C(tems) - *_B(tems)) / ds0[is]) / (ds1[is] * *_C(tems)), betas = beta * sigma0[is], upduds = 0.5 * (*_C(u3) + *_L(u3)) + 0.5 * s0ds2a[is] * (*_F(u3) + *_LF(u3) - *_B(u3) - *_LB(u3)), vpdvds = 0.5 * (*_C(v3) + *_D(v3)) + 0.5 * s0ds2a[is] * (*_F(v3) + *_DF(v3) - *_B(v3) - *_DB(v3)); // 12 FLOPS constdouble val1 = ((*_P(_C(pp3)) - *_P(_C(pp1))) / dtl + 0.5 * (*_C(u2) * (*_P(_C(pp2)) + *_P(_R(pp2))) – *_L(u2) * (*_P(_L(pp2)) + *_P(_C(pp2)))) / dx + 0.5 * (*_C(v2) * (*_P(_C(pp3)) + *_P(_U(pp3))) – *_D(v2) * (*_P(_D(pp3)) + *_P(_C(pp3)))) / dy + *_P(_C(pp2)) * (*_F(wsig2) - *_C(wsig2)) / ds1[is]) / dt2; // 12 FLOPS constdouble val2 = -(*_C(uflux) - *_L(uflux)) / dx - (*_C(vflux) - *_D(vflux)) / dy + ...
Параллельные Вычислительные Технологии ПАВТ-2009 Автоматический обмен данными - 1 pp3 + 1 pp3 0 pp3 +nx pp3 -nx pp3 0 pp3 + 1 pp3 - 1 pp3 0 pp3 +nx pp3 -nx pp3 0 pp3 0 pp3 0 pp3 +nptems -nptems 0 tems 0 pp3 +nptems 0 tems 0 tems -nptems 0 tems 0 u3 - 1 u3 +np u3 +np-1 u3 -np u3 -np-1 u3 0 v3 … // 32 FLOPS constdouble ppdx = (*_P(_R(pp3)) - *_P(_L(pp3))) / (dx2 * *_P(_C(pp3))), ppdy = (*_P(_U(pp3)) - *_P(_D(pp3))) / (dy2 * *_P(_C(pp3))), ppgra2 = ppdx * ppdx + ppdy * ppdy, pplap = ((*_P(_R(pp3)) + *_P(_L(pp3)) - 2. * *_P(_C(pp3))) / dxx + (*_P(_U(pp3)) + *_P(_D(pp3)) - 2. * *_P(_C(pp3))) / dyy) / *_P(_C(pp3)), p = ptop + sigma0[is] * *_P(_C(pp3)), dtsdsi = (*_F(tems) - *_B(tems)) / (ds02a[is] * *_C(tems)), alfa = ptop / p + sigma0[is] * dtsdsi, beta = -ptop * *_P(_C(pp3)) / (p * p) + dtsdsi * (1. + sigma0[is] * dtsdsi) + sigma0[is] * ((*_F(tems) - *_C(tems)) / ds0[is+1] - (*_C(tems) - *_B(tems)) / ds0[is]) / (ds1[is] * *_C(tems)), betas = beta * sigma0[is], upduds = 0.5 * (*_C(u3) + *_L(u3)) + 0.5 * s0ds2a[is] * (*_F(u3) + *_LF(u3) - *_B(u3) - *_LB(u3)), vpdvds = 0.5 * (*_C(v3) + *_D(v3)) + 0.5 * s0ds2a[is] * (*_F(v3) + *_DF(v3) - *_B(v3) - *_DB(v3)); // 12 FLOPS constdouble val1 = ((*_P(_C(pp3)) - *_P(_C(pp1))) / dtl + 0.5 * (*_C(u2) * (*_P(_C(pp2)) + *_P(_R(pp2))) – *_L(u2) * (*_P(_L(pp2)) + *_P(_C(pp2)))) / dx + 0.5 * (*_C(v2) * (*_P(_C(pp3)) + *_P(_U(pp3))) – *_D(v2) * (*_P(_D(pp3)) + *_P(_C(pp3)))) / dy + *_P(_C(pp2)) * (*_F(wsig2) - *_C(wsig2)) / ds1[is]) / dt2; // 12 FLOPS constdouble val2 = -(*_C(uflux) - *_L(uflux)) / dx - (*_C(vflux) - *_D(vflux)) / dy + ...
Параллельные Вычислительные Технологии ПАВТ-2009 Автоматический обмен данными • Пробный проход итерации цикла: • последовательность эффективных адресов • используемых данных • исключение дубликатов • Использование полученной последовательности как базовых адресов в итерациях цикла с прибавлением соотв. смещения
Параллельные Вычислительные Технологии ПАВТ-2009 Производительность ElliptFRна IBM QS22 • 27 массивов, на одну итерацию: • 83 входных значения • 2 выходных значения • ≈ 119 FLOP Время, сек Процессорные элементы
Параллельные Вычислительные Технологии ПАВТ-2009 Производительность Leapfrog на IBM QS22 • 10 массивов, на одну итерацию: • 22 входных значения • 1 выходное значение • ≈ 17 FLOP Время, сек Процессорные элементы
Параллельные Вычислительные Технологии ПАВТ-2009 Векторизация Возможность одновременного расчёта двух итераций (double precision)при использовании векторных операций ПРОБЛЕМА согласования выравниваний
Параллельные Вычислительные Технологии ПАВТ-2009
Параллельные Вычислительные Технологии ПАВТ-2009 Перспективы развития • сопряжение региональной атмосферной модели и вихреразрешающей модели пограничного слоя ИВМ РАН • (Глазунов А.В.) • развитие блока переноса активной атмосферной примеси • включение параметризации кристаллической фазы в блок микрофизики облаков • моделирование эмиссии и переноса метана в атмосферном бассейне Сибири
Параллельные Вычислительные Технологии ПАВТ-2009 http://geophyslab.srcc.msu.ru http://code.google.com/p/nh3d Работа выполнена при поддержке гранта РФФИ 07-05-00200 программы Скиф-грид компании Т-Платформы