Formalized designing and generation of parallel program for numerical weather forecasting task
Algebra-algorithmic specifications for meteorological forecasting algorithms were developed using the integrated toolkit for designing and synthesis of programs. Sequential and parallel programs for solving the task of weather forecasting for the territory of Ukraine. The results of the experiment o...
Збережено в:
| Дата: | 2025 |
|---|---|
| Автори: | , , , , |
| Формат: | Стаття |
| Мова: | Ukrainian |
| Опубліковано: |
PROBLEMS IN PROGRAMMING
2025
|
| Теми: | |
| Онлайн доступ: | https://pp.isofts.kiev.ua/index.php/ojs1/article/view/696 |
| Теги: |
Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
|
| Назва журналу: | Problems in programming |
| Завантажити файл: | |
Репозитарії
Problems in programming| id |
pp_isofts_kiev_ua-article-696 |
|---|---|
| record_format |
ojs |
| resource_txt_mv |
ppisoftskievua/0b/df5c33213851f0d25aa9f481eab6f50b.pdf |
| spelling |
pp_isofts_kiev_ua-article-6962025-04-09T22:22:32Z Formalized designing and generation of parallel program for numerical weather forecasting task Формалізоване проектування та генерація паралельної програми чисельного прогнозування погоди Doroshenko, A.Yu. Beketov, O.G. Prusov, V.A. Turchak, Yu.M. Yatsenko, E.A. UDC 681.3 УДК 681.3 Algebra-algorithmic specifications for meteorological forecasting algorithms were developed using the integrated toolkit for designing and synthesis of programs. Sequential and parallel programs for solving the task of weather forecasting for the territory of Ukraine. The results of the experiment of parallel program execution on a graphics accelerator are also provided.Prombles in programming 2014; 2-3: 72-81 Розроблено алгеброалгоритмічні специфікації алгоритмів метеорологічного прогнозування із застосуванням створеного інтегрованого інструментарію проектування та синтезу програм. Розроблено послідовну та паралельну програмні реалізації для вирішення задачі прогнозування погоди для території України. Проведено експеримент з виконання паралельної програми на відеографічному прискорювачі.Prombles in programming 2014; 2-3: 72-81 PROBLEMS IN PROGRAMMING ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ ПРОБЛЕМИ ПРОГРАМУВАННЯ 2025-04-09 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/696 PROBLEMS IN PROGRAMMING; No 2-3 (2014); 72-81 ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 2-3 (2014); 72-81 ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 2-3 (2014); 72-81 1727-4907 uk https://pp.isofts.kiev.ua/index.php/ojs1/article/view/696/748 Copyright (c) 2025 PROBLEMS IN PROGRAMMING |
| institution |
Problems in programming |
| baseUrl_str |
https://pp.isofts.kiev.ua/index.php/ojs1/oai |
| datestamp_date |
2025-04-09T22:22:32Z |
| collection |
OJS |
| language |
Ukrainian |
| topic |
UDC 681.3 |
| spellingShingle |
UDC 681.3 Doroshenko, A.Yu. Beketov, O.G. Prusov, V.A. Turchak, Yu.M. Yatsenko, E.A. Formalized designing and generation of parallel program for numerical weather forecasting task |
| topic_facet |
UDC 681.3 УДК 681.3 |
| format |
Article |
| author |
Doroshenko, A.Yu. Beketov, O.G. Prusov, V.A. Turchak, Yu.M. Yatsenko, E.A. |
| author_facet |
Doroshenko, A.Yu. Beketov, O.G. Prusov, V.A. Turchak, Yu.M. Yatsenko, E.A. |
| author_sort |
Doroshenko, A.Yu. |
| title |
Formalized designing and generation of parallel program for numerical weather forecasting task |
| title_short |
Formalized designing and generation of parallel program for numerical weather forecasting task |
| title_full |
Formalized designing and generation of parallel program for numerical weather forecasting task |
| title_fullStr |
Formalized designing and generation of parallel program for numerical weather forecasting task |
| title_full_unstemmed |
Formalized designing and generation of parallel program for numerical weather forecasting task |
| title_sort |
formalized designing and generation of parallel program for numerical weather forecasting task |
| title_alt |
Формалізоване проектування та генерація паралельної програми чисельного прогнозування погоди |
| description |
Algebra-algorithmic specifications for meteorological forecasting algorithms were developed using the integrated toolkit for designing and synthesis of programs. Sequential and parallel programs for solving the task of weather forecasting for the territory of Ukraine. The results of the experiment of parallel program execution on a graphics accelerator are also provided.Prombles in programming 2014; 2-3: 72-81 |
| publisher |
PROBLEMS IN PROGRAMMING |
| publishDate |
2025 |
| url |
https://pp.isofts.kiev.ua/index.php/ojs1/article/view/696 |
| work_keys_str_mv |
AT doroshenkoayu formalizeddesigningandgenerationofparallelprogramfornumericalweatherforecastingtask AT beketovog formalizeddesigningandgenerationofparallelprogramfornumericalweatherforecastingtask AT prusovva formalizeddesigningandgenerationofparallelprogramfornumericalweatherforecastingtask AT turchakyum formalizeddesigningandgenerationofparallelprogramfornumericalweatherforecastingtask AT yatsenkoea formalizeddesigningandgenerationofparallelprogramfornumericalweatherforecastingtask AT doroshenkoayu formalízovaneproektuvannâtageneracíâparalelʹnoíprogramičiselʹnogoprognozuvannâpogodi AT beketovog formalízovaneproektuvannâtageneracíâparalelʹnoíprogramičiselʹnogoprognozuvannâpogodi AT prusovva formalízovaneproektuvannâtageneracíâparalelʹnoíprogramičiselʹnogoprognozuvannâpogodi AT turchakyum formalízovaneproektuvannâtageneracíâparalelʹnoíprogramičiselʹnogoprognozuvannâpogodi AT yatsenkoea formalízovaneproektuvannâtageneracíâparalelʹnoíprogramičiselʹnogoprognozuvannâpogodi |
| first_indexed |
2025-07-17T09:58:06Z |
| last_indexed |
2025-07-17T09:58:06Z |
| _version_ |
1850410788289773568 |
| fulltext |
Паралельне програмування. Розподілені системи і мережі
© А.Ю. Дорошенко, О.Г. Бекетов, В.А. Прусов, Ю.М. Тирчак, О.А. Яценко, 2014
72 ISSN 1727-4907. Проблеми програмування. 2014. № 2–3. Спеціальний випуск
УДК 681.3
ФОРМАЛІЗОВАНЕ ПРОЕКТУВАННЯ ТА
ГЕНЕРАЦІЯ ПАРАЛЕЛЬНОЇ ПРОГРАМИ
ЧИСЕЛЬНОГО ПРОГНОЗУВАННЯ ПОГОДИ
А.Ю. Дорошенко, О.Г. Бекетов, В.А. Прусов, Ю.М. Тирчак, О.А. Яценко
Інститут програмних систем НАН України,
03187, Київ, проспект Академіка Глушкова 40.
Тел.: (044) 526 3559,
e-mail: doroshenkoanatoliy2@gmail.com,
beketov.oleksii@gmail.com, chacke@gmail.com, oayat@ukr.net
Розроблено алгеброалгоритмічні специфікації алгоритмів метеорологічного прогнозування із застосуванням створеного інтегрова-
ного інструментарію проектування та синтезу програм. Розроблено послідовну та паралельну програмні реалізації для вирішення
задачі прогнозування погоди для території України. Проведено експеримент з виконання паралельної програми на відеографічному
прискорювачі.
Algebra-algorithmic specifications for meteorological forecasting algorithms were developed using the integrated toolkit for designing and
synthesis of programs. Sequential and parallel programs for solving the task of weather forecasting for the territory of Ukraine. The results of
the experiment of parallel program execution on a graphics accelerator are also provided.
Вступ
За останні 30 років досягнуто безперечного прогресу в розробці і оперативному застосуванні сучасних
чисельних гідродинамічних методів прогнозу погоди. Це стало можливим передусім завдяки появі сучасних
ЕОМ, розробці більш довершених і реалістичних математичних моделей, а також істотному збільшенню обсягу
початкових метеорологічних даних. Сьогодні удосконалення якості прогнозів відбувається в двох напрямках:
поліпшення справджуваності прогнозу і збільшення його завчасності. Короткостроковий прогноз визначається
головним чином початковим станом атмосфери. Для середньострокових прогнозів потрібне як детальне знання
початкових полів метеорологічних величин, так і уміння описати впливи зовнішніх чинників, які призводять до
нового стану рівноваги системи, що прогнозується [1]. Довгостроковий прогноз меншою мірою залежить від
початкового стану атмосфери і включає в себе елементи моделювання клімату. Збільшення завчасності прогно-
зів веде до необхідності розширення області інтегрування аж до охоплення всієї поверхні земної кулі, що спри-
чиняє необхідність використання потужних мультипроцесорних комп’ютерів.
Якість чисельних методів прогнозів погоди залежить у першу чергу від таких чинників:
• точності опису фізичних процесів, що обумовлюють зміни в часі макромасштабних і мезомасштабних
характеристик атмосфери під впливом рельєфу;
• адекватності фактичних фізичних процесів підсіткового масштабу і тих, що моделюються;
• точності задавання початкових і крайових умов;
• швидкості чисельного інтегрування вихідних рівнянь.
Комп’ютерна реалізація чисельних методів для таких складних задач, як моделювання метеорологіч-
них процесів, наразі вже неможлива без використання методів високопродуктивних обчислень , адже прогно-
зування погоди завжди пов’язане з жорсткими часовими обмеженнями. Одним з перспективних напрямів у
розробці і дослідженні систем паралельних і розподілених обчислень нині є побудова програмних абстракцій
у вигляді алгеброалгоритмічних мов і моделей [2], що ставить своєю метою розвиток архітектурно- і мовно-
незалежних засобів програмування для мультипроцесорних обчислювальних систем і мереж. У роботах [3, 4]
був запропонований підхід до вирішення проблем моделювання циркуляції атмосфери, що поєднує комплек-
сність використання адекватних фізичних моделей атмосферних процесів з ефективними обчислювальними
схемами і методами програмування високопродуктивних обчислень на паралельних ЕОМ, що дає змогу дося-
гати належного ступеня точності, повноти і своєчасності інформації, необхідної для складання якісних м е-
теорологічних прогнозів. Відмітимо, що подальший прогрес у покращенні показників якості створення пара-
лельних систем метеорологічного прогнозування пов’язаний із використанням відеографічних прискорюва-
чів (GPU) [5]. У попередніх роботах авторів [2, 6] розроблено інструментарій проектування та синтезу про-
грам (ІПС), що забезпечує автоматизацію розробки алгоритмів та програм для різноманітних паралельних
платформ. В роботі [7] було виконане налаштування системи на генерацію паралельних програм для GPU.
Інструментарій ґрунтується на алгебрі алгоритміки [2] та призначений для конструювання алгоритмів у ви-
гляді схем (високорівневих формалізованих проектів), поданих у системах алгоритмічних алгебр Глушкова
(САА). У даній роботі розроблена система використовується для конструювання алгоритмів та генерації про-
грам чисельного прогнозування погоди. Реалізація паралельного алгоритму виконана мовою C++ із викорис-
танням технології CUDA [8], що дозволяє проводити обчислення на графічних прискорювачах NVIDIA.
Паралельне програмування. Розподілені системи і мережі
73
Матеріал даної роботи складається з таких розділів. Розділ 1 присвячено огляду використаної мате-
матичної моделі та скінченно-різницевих методів, що застосовуються для чисельного прогнозування ста-
ну навколишнього середовища. В розділі 2 виконане формалізоване проектування послідовного та паралель-
ного алгоритмів прогнозування, що ґрунтуються на розглянутій моделі та методах. У розділі 3 наведено ре-
зультати експерименту із виконання розробленої паралельної програми прогнозування на відеографічному
прискорювачі.
1. Математична модель та скінченно-різницеві методи чисельного прогнозування стану
атмосфери
В атмосфері є процеси та явища різних типів. Одні процеси розвиваються на обмеженій території на про-
тязі невеликого відрізку часу, інші – на широкому просторі довгий час. В залежності від просторової протяжно-
сті всі процеси та явища в атмосфері можна умовно поділити на три типи: мікромасштабні (до кілометра), ме-
зомасштабні (порядку десятків і сотень кілометрів) та макромасштабні (понад 1000 км). Формування процесів
та явищ в атмосфері в кожній конкретній області виникає під впливом процесів всіх перерахованих вище масш-
табів [1].
Регіональні та локальні моделі, що описують мезомасштабні та мікромасштабні метеорологічні процеси
та явища, визначають формування погоди в окремих пунктах та регіонах, призначені для створення більш об-
ґрунтованих та деталізованих як в просторі, так і в часі прогнозів погоди. Останніми роками у більшості націо-
нальних, регіональних і світових гідрометеорологічних службах створюються чи вже створені регіональні мо-
делі і пакети програм для розв’язання задач чисельного прогнозу як окремих гідрометеорологічних явищ, так і
погоди загалом. Ці моделі призначені для описання локальних процесів на відносно невеликих територіях і в
майбутньому дадуть більший ефект, ніж традиційний прогноз погоди.
Математичне моделювання проводиться в три етапи [1, 9]:
1) побудова математичної моделі, що описує процеси в атмосфері;
2) вибір методу реалізації моделі;
3) програмування обчислювального алгоритму на ЕОМ і проведення розрахунків.
Щодо першого етапу, на сьогодні існує цілком задовільна математична теорія руху рідини взагалі й
атмосферних рухів зокрема [1, 9–11]. Ця теорія ґрунтується на фізичних законах збереження кількості руху,
маси й енергії. Математично вона виражається рівняннями руху Нав’є–Стокса (точніше Рейнольдса для тур-
булентних процесів), що зв'язують прискорення в певному напрямку з компонентами об'ємних і поверхневих
сил, які діють у цьому напрямку, рівнянням збереження маси, термодинамічним рівнянням енергії і, нарешті,
рівнянням стану Бойля–Шарля. Тут варто підкреслити, що ці фундаментальні закони, залишаючись істотно
незмінними, складають основу динамічної метеорології і відіграють ключову роль у розумінні математичних
моделей прогнозування погоди.
Реалізація прогностичних моделей відбувається за допомогою чисельних методів. Це обумовлено
складністю математичних моделей, що описують циркуляційні процеси в атмосфері. Рівняння, з яких скла-
даються такі моделі, є переважно нелінійними трьохвимірними рівняннями другого порядку з малим параме-
тром при похідних другого порядку. Завдяки наявності малого параметра при старших похідних ці рівняння
можуть змінювати свій тип (еліптичний, гіперболічний або параболічний) залежно від режиму руху в атмо с-
фері, що моделюється [1, 9]. Крім цього треба відзначити, що математична модель циркуляції атмосфери та
процесів в ній, яка сформульована на базі повних рівнянь Нав’є–Стокса та тепло-масопереносу, описує ши-
рокий спектр рухів: мезомасштабні процеси, баротропні та бароклінні хвилі Росбі, інерційно -гравітаційні
хвилі, квазістаціонарні струминні течії та ін. Ресурси сучасних ЕОМ поки що не дають змоги здійснювати
просторову дискретизацію моделі атмосфери з високим розподіленням. А просторова дискретизація з грубим
розподіленням веде до того, що багато мезомасштабних метеорологічних процесів не описуються цією мо-
деллю, оскільки у такому разі опиняються у класі процесів підсіткового масштабу.
Існують два методи описання механізмів взаємодії процесів різних масштабів. Перший ґрунтується на
дискретизації мезомасштабної задачі на нерівномірній сітці з використанням необхідної інтерполяції метео-
рологічних параметрів, які задані на грубій сітці, у вузли дрібної сітки. Складність цього алгоритму очевид-
на. Другий метод полягає у розбиванні області розв’язання загальної задачі на низку підобластей, перетво-
ренням у кожній підобласті постановки вихідної задачі з урахуванням описання лише основних процесів та
зшиванням розв’язання на межах. Цей напрям нам видається більш економічним, тому конструкція основних
алгоритмів, наведених у даній статті, будується з урахуванням можливості використання так званого методу
«однобічного впливу» [1, 9].
Побудовані в даній роботі алгоритми та програми прогнозування погоди ґрунтуються на регіональній
математичній моделі стану атмосфери, що наведена в роботі [1] і подана за допомогою такої системи рівнянь:
sin
cos
2
cos
v
r
uu
w
u
r
vu
r
u
t
u
Паралельне програмування. Розподілені системи і мережі
74
u
r
u
r
F
g
r
GGv
1
cos
1
1
cos
1
(1)
u
FH
M2
1
,
sin
cos
2
cos
u
r
uv
w
v
r
vv
r
u
t
v
v
r
v
r
F
g
r
GGv
1
cos
1
1
1
(2)
v
FH
M2
1
,
w
g
rr
wg
rFH
w
FH VV
12211
2
2
2
cos1cos1
cos
1 vFuF
FH
vug
rr V
(3)
cos1cos1 vFuF
FH
vu
FH
,
w
r
v
r
u
t cos
HGG
FHrr 2
11
cos
1
(4)
RK
H QQQ
dt
dqL
,
q
w
q
r
vq
r
u
t
q
cos
(5)
XHGG
q
FH
q
r
q
r
2
11
cos
1
,
LLLL q
w
q
r
vq
r
u
t
q
cos
L
H
L
G
L
G
q
FH
q
r
q
r 2
11
cos
1
(6)
MM
dt
dq
K
H ,
WWWW q
w
q
r
vq
r
u
t
q
cos
W
H
W
G
W
G
q
FH
q
r
q
r 2
11
cos
1
(7)
M
dt
dqqV
FH
HWo
1
,
Паралельне програмування. Розподілені системи і мережі
75
v
FHg
, (8)
d
vu
r
FHgwgwg
t
p
1
1
cos
cos
1
2 , (9)
k
w
k
r
vk
r
u
t
k
cos
k
K
FHFH
Kgvu
FH
K
M
vH
v
M
2
22
2
2
, (10)
w
r
v
r
u
t cos
M
vH
v
M K
FH
C
k
C
FH
Kgvu
FH
K
k
C
2
4
2
3
22
22 , (11)
2
1 kCKM . (12)
У рівняннях (1)–(12) t – час; – довгота; – широта; FHFx 3 – приведена вертикальна ко-
ордината, що відслідковує рельєф; F – висота рельєфу, H – повна висота області розв’язання моделі;
r – радіус Землі; – кутова швидкість обертання Землі; pCR
p ppC 0 – приведений тиск; p – тиск,
0p – значення тиску на поверхні моря; wvu ,, – складові швидкості вітру по довготі, широті і вертикальній ко-
ординаті відповідно; – густина повітря; 81,9g – прискорення вільного падіння; T – температура;
– температура потенційного потоку, V – віртуальна температура потенційного потоку; q – вологість,
Hq – вологість у стані насичення; Lq – вода у рідкому стані; 04,287R – газова постійна повітря; RCp 5,3 –
теплоємність повітря за умови постійного тиску; L – приховане тепло конденсації; – ознака наявності кон-
денсації вологи (1 – має місце, 0 – відсутня); KQ – інтенсивність звільнення прихованої теплоти конденсації
водяної пари у субсітковому масштабі; Q – інтенсивність звільнення прихованої теплоти випаровування води
у субсітковому масштабі; RQ – радіаційне охолодження або нагрів; KM – внесок вологості від конденсації у
субсітковому масштабі; M – внесок вологості від випаровування у субсітковому масштабі; oV – усталена
швидкість опадів; k – турбулентна кінетична енергія; – турбулентна дисипація; GK – коефіцієнт горизонта-
льного турбулентного обміну; MK – коефіцієнт вертикального турбулентного обміну для кількості руху; HK –
коефіцієнт вертикального турбулентного обміну для тепла та вологи; 4321 ,,, CCCC = 42,0;83,1;46,1;09,0 –
константи замикання планетарного примежового прошарку атмосфери.
Прогноз значень метеорологічних величин над обмеженою територією G здійснюється на основі методу
«одностороннього впливу». Іншими словами, у якості граничних умов для регіональної моделі (1)–(12) викори-
стовуються результати аналізу і прогнозу, отримані за допомогою макромасштабної (напівсферної або глобаль-
ної) моделі.
Стан атмосфери в просторі ,,r макромасштабної області rGrG визначається вектором
,,,,,,,,,, kqqqTwvutr WL дискретних значень аналізу і прогнозу rtr mm , , отриманих на основі
макромасштабної моделі в моменти часу
mtt Mm ,...,1,0 з кроком
1 mm tt . Для визначення стану
атмосфери на обмеженій території G при mm ttt ,1 виконується розв’язання задачі, що у векторному виразі
має вигляд:
D
t
, mm ttt ,1 , Gr (13)
)(, rtr mm , .,...,1,0 Mm
Для розв’язання задачі (13) у даній роботі застосовується інтерполювання функції за декількома зна-
ченнями самої функції (передісторією) та похідних від неї першого порядку за допомогою алгебраїчного по-
Паралельне програмування. Розподілені системи і мережі
76
ліному. Використовується інтерполяція з кратними вузлами при кратності три. Виконується також апрокси-
мація правих частин диференціальних рівнянь моделі у вузлах просторової сітки. Детальний опис застосова-
ного чисельного методу наведено в монографії [1].
Відмітимо, що значною проблемою при прогнозуванні погоди на основі реалізації математичних мо-
делей є обмеження на час розв’язання, оскільки прогноз погоди потрібно отримувати завчасно. Навіть сучас-
ні потужні обчислювальні машини не дозволяють використовувати дрібну просторову сітку в області
розв’язання задачі і часову дискретизацію та ітераційні методи, що дало б можливість підвищити точність
прогнозу. Особливо актуальною дана проблема видається для України, тому що питання зменшення затрат
машинного часу при розв’язанні задач динамічної метеорології стоїть особливо гостро в зв’язку з відсутніс-
тю в національній гідрометслужбі потужної обчислювальної техніки, яку використовують у світових і націо-
нальних метеорологічних центрах розвинутих держав. В даному випадку альтернативою може стати викори-
стання сучасної технології паралельного програмування на відеографічних процесорах, що вирізняються по-
рівняною дешевизною, компактністю та економністю. В даній роботі наведено результати застосування тех-
нології CUDA для вирішення задачі прогнозування. В наступному розділі наведено схеми алгоритмів про-
гнозування, побудовані на основі вищерозглянутої математичної моделі.
2. Формалізоване проектування алгоритмів чисельного прогнозування погоди
У даному розділі розглядається застосування апарату алгебри алгоритмів для проектування послідов-
ної та паралельної програм прогнозування на основі використання інструментарію ІПС. В основу згаданого
інструментарію покладено поняття систем алгоритмічних алгебр В.М. Глушкова [2]. САА є двохосновною
алгеброю <U, B; >, де U – множина операторів, B – множина логічних умов. Оператори є відображеннями
інформаційної множини (ІМ) у себе, логічні умови є відображеннями множини ІМ у множину значень
3-значної логіки 3E = {0, 1, ,}, де 0 – хибність; 1 – істина; – невизначеність. Сигнатура операцій САА
= 1 2 складається із системи 1 логічних операцій, що приймають значення в множині B, і системи 2
операцій, що приймають значення в множині операторів U. В САА < U, B; > фіксується система утворюю-
чих , що є скінченною функціонально повною сукупністю операторів і логічних умов. За допомогою цієї
сукупності із використанням суперпозиції операцій, що входять у , породжуються довільні оператори і ло-
гічні умови з множин U і B.
На САА ґрунтується алгоритмічна мова САА/1 [2], що використовується для проектування програм в
ІПС. Згадана мова призначена для багаторівневого структурного проектування і документування послідов-
них і паралельних алгоритмів і програм. Перевагою її використання є можливість опису алгоритмів у приро-
дно-лінгвістичній формі, зручній для людини, що полегшує досягнення необхідної якості програм. Основни-
ми об'єктами мови САА/1 є абстракції операторів (перетворювачів даних) і умов (предикатів). Оператори й
умови можуть бути базисними або складеними. Базисний оператор (умова) – це оператор (умова), що в САА-
схемі вважається первинною атомарною абстракцією.
Складені умови будуються на основі базисних за допомогою логічних операцій САА:
диз’юнкція: 'умова1' АБО 'умова2';
кон’юнкція: 'умова1' І 'умова2';
заперечення: НЕ 'умова'.
Складені оператори будуються з елементарних за допомогою наступних операцій:
"оператор1" ПОТІМ "оператор2" (або "оператор1" ; "оператор2") – послідовне вико-
нання операторів;
ЯКЩО 'умова' ТО "оператор1" ІНАКШЕ "оператор2" КІНЕЦЬ ЯКЩО – оператор розгалу-
ження;
ДЛЯ ("змінна1" ВІД "вираз1" ДО "вираз2") ЦИКЛ "оператор" КІНЕЦЬ ЦИКЛУ – опе-
ратор циклу з лічильником;
ПАРАЛЕЛЬНО (i = 1, ..., n) ( "оператор" ) – асинхронне виконання n операторів.
Ідентифікатори операторів в САА-схемах позначаються подвійними лапками, а умови – одинарними.
Рівні в САА-схемах позначені лівими частинами рівностей, а структура кожного рівня конкретизується (в
термінах САА) правою частиною відповідної рівності. Ліва частина рівності відокремлюється від правої лан-
цюжком символів “=”.
Інструментарій ІПС призначений для проектування алгоритмів і генерації програм в цільових мовах
програмування (Java та C++). Проектування алгоритмів у ІПС ґрунтується на методі діалогового конструю-
вання синтаксично правильних програм (ДСП-методі) [2], що забезпечує синтаксичну правильність схем.
При цьому він використовує згадані три різні форми подання алгоритмів у процесі їхнього проектування –
природно-лінгвістичну (САА-схеми), алгебраїчну (регулярні схеми) і графу-схемну. Система ІПС підтри-
мує генерацію коду паралельних програм різних типів: багатопотокових (зі спільною пам’яттю); програм,
орієнтованих на передачу повідомлень (MPI); програм, що використовують відеографічні прискорювачі [7].
У даній роботі розроблена система була використана для проектування послідовного та паралельного алго-
Паралельне програмування. Розподілені системи і мережі
77
ритмів чисельного прогнозування погоди. Паралельний алгоритм орієнтований на виконання обчислень із
використанням GPU.
В паралельній схемі використовуються операції САА, орієнтовані на формалізацію обчислень в
CUDA-програмах, що були запропоновані в роботі [7]: операції взаємодії із відеопам’яттю, запуску ядра та
синхронізації потоків.
Операція запуску ядра має вигляд:
Запуск_Ядра (blocksPerGrid, threadsPerBlock)
( "оператор" ),
де blocksPerGrid – кількість блоків у сітці (масиві блоків) CUDA; threadsPerBlock – кількість потоків у
кожному блоці; "оператор" – частина алгоритму, що буде виконуватися паралельно потоками CUDA.
Операція синхронізації
ЧЕКАТИ ‘Обробка у всіх потоках закінчена’
виконує очікування завершення обчислень усіма потоками CUDA.
Далі на основі наведених операцій САА виконується побудова послідовного та паралельного алгоритмів
прогнозування.
2.1. Послідовний алгоритм. Розглянемо наведену далі узагальнену САА-схему послідовної програми
прогнозування, що була побудована із використанням інструментарію ІПС.
СХЕМА МЕТЕОРОЛОГІЧНЕ ПРОГНОЗУВАННЯ ====
"Послідовний алгоритм чисельного прогнозування погоди"
КІНЕЦЬ КОМЕНТАРЯ
"Загальна схема обчислень"
==== "Ініціалізація початкових даних";
"Читання і введення значень рельєфу";
"Введення початкових метеорологічних даних об'єктивного
аналізу і прогнозу, отриманих з ГМЦ";
"1. Інтерполяція даних, що задані у вузлах макромасштабної сітки, у
вузли мезомасштабної сітки";
"2. Обчислення сіткових значень правих частин Q рівнянь R'=Q
гідродинаміки і тепло-, масопереносу у вузлах мезомасштабної сітки";
"3. Розрахунок прогностичних даних на заданий термін прогнозу"
КІНЕЦЬ СХЕМИ МЕТЕОРОЛОГІЧНЕ ПРОГНОЗУВАННЯ
В наведеному алгоритмі спочатку виконується ініціалізація початкових даних та зчитування із бази да-
них в програму висот рельєфу для вибраної області прогнозування. У програмі задається розмір області для
початкових даних об'єктивного аналізу – географічні координати в градусах по довготі ),( 0 kXX , широті
),( 0 kYY і висоті ),( 0 kZZ . Параметрами сітки для цієї області є кількість вузлів і крок сітки по довготі ),( xDN ,
широті ),( yDM та висоті (L, P(i)), де P(i) – значення тиску на стандартних рівнях в початкових даних об'єктив-
ного аналізу. Розмір області і параметри сітки залежать від території, а також параметрів моделі чисельного
прогнозу погоди гідрометеорологічного центру (ГМЦ), з якого приймаються початкові метеорологічні дані.
Поточна версія програми орієнтована на дані об'єктивного аналізу з ГМЦ, що розташований у м. Офенбах (Ні-
меччина) [12]. Отримувані дані являють собою початкові умови, тобто набір вимірів, для конкретного моменту
часу, а також прогнозовані дані для наступних моментів часу з кроком у 12 годин. Ці дані потрапляють на вхід
програми прогнозування у вигляді набору файлів, яка далі виконує їх зчитування. Після введення даних із фай-
лів в алгоритмі виконується інтерполяція початкових даних у вузли регіональної сітки (заповнення розподілу
функцій) та обчислення значень апроксимованих правих частин диференціальних рівнянь моделі циркуляції
атмосфери. Складені оператори, що виконують зазначені дії, позначені у вищенаведеній схемі номерами 1 та 2.
Деталізація цих операторів подана в САА-схемі “ІНТЕРПОЛЯЦІЯ”, що наведена далі.
СХЕМА ІНТЕРПОЛЯЦІЯ ====
"Заповнення початкових полів, заданих на макромасштабній сітці,
у вузли мезомасштабної сітки"
КІНЕЦЬ КОМЕНТАРЯ
"1. Інтерполяція даних, що задані у вузлах макромасштабної сітки, у
Паралельне програмування. Розподілені системи і мережі
78
вузли мезомасштабної сітки"
==== "Оголошення та ініціалізація змінних";
"Заповнення горизонтального розподілу функцій по довготі";
"Заповнення горизонтального розподілу функцій по широті";
"Заповнення вертикального розподілу залежних функцій";
"Обчислення конденсації пари, нижньої та верхньої межі хмари, опадів"
"2. Обчислення сіткових значень правих частин Q рівнянь R'=Q
гідродинаміки і тепло-, масопереносу у вузлах мезомасштабної сітки"
==== "Виділити пам'ять для змінних Qx, Qy, RG, Q, RZ, RZ_tmp";
"Обчислення значень W_in(X, Y, Z) на основі рівняння нерозривності
методом трапецій";
"Обчислення значень Rg_in(X, Y, Z)";
"Оголошення та ініціалізація змінних";
"Обчислення правих частин Q для (U)";
"Обчислення правих частин Q для (V)";
"Обчислення правих частин Q для (q)";
"Обчислення правих частин Q для (P)";
"Обчислення правих частин Q для (Os)";
"Обчислення правих частин Q для (T)";
"Звільнення зарезервованої пам'яті для Qx, Qy, RG, Q, RZ_tmp";
У наведеній схемі отримані з ГМЦ початкові метеорологічні дані (тиск, температура, вологість та го-
ризонтальні компоненти вітру) методом поповнення на основі сплайн інтерполяції [1] перераховуються у
вузли мезомасштабної горизонтальної сітки, відстань між якими як по широті, так і по довготі є значно ме н-
шою, ніж у вихідній сітці. Потім дані мезомасштабної горизонтальної сітки перераховуються у вузли мезо-
масштабної вертикальної сітки. І нарешті, праві частини системи рівнянь (1)–(12) моделі циркуляції атмос-
фери (див. розділ 1), які містять часткові похідні першого і другого порядку апроксимуються трьохточкови-
ми компактними різницевими схемами [1] з урахуванням рельєфу підстильної поверхні на території прогно-
зу. У результаті отримуються значення різницевих аналогів правих частин i
jkljklf рівнянь (1)–(12) для
кожної із залежних функцій ,,,,,,, kqqTvu L , Jj ,1 , Kk ,1 , Ll ,1 мезомасштабної сітки
для кожного конкретного терміну об'єктивного аналізу чи прогнозу, що передані з німецької національної
служби DWD Offenbach.
Після розглянутих операторів інтерполяції та обчислення правих частин рівнянь у загальній схемі ал-
горитму наведено оператор, що виконує обчислення прогностичних даних на необхідний термін часу (від
однієї до двох діб). Далі у скороченому вигляді наведена деталізація цього оператора у вигляді схеми.
"3. Розрахунок прогностичних даних на заданий термін прогнозу"
==== "Обчислення значень функції (U);
"Обчислення значень функції (V);
"Обчислення значень функції (T);
"Обчислення значень функції (q)";
"Обчислення значень функції (HS)";
"Обчислення значень функції (QC)";
"Обчислення значень W_in(X, Y, Z) на основі рівняння нерозривності
методом трапецій";
"Розрахунок нижньої й верхньої межі хмари та опадів";
"Записати отримані значення функцій у файли";
2.2. Паралельний алгоритм. У даній роботі виконано розпаралелення найбільш ресурсоємної частини
послідовного алгоритму, а саме, складеного оператора (підпрограми) обчислення сіткових значень правих час-
тин Q рівнянь QR , що позначений у вищенаведеній схемі “ІНТЕРПОЛЯЦІЯ” номером 2. Згаданий опера-
тор містить шість складених операторів, що піддаються розпаралелюванню, і виконують обчислення правих
частин для функцій U, V, q, P, Os та T відповідно. Відмітимо, що оператори для функцій U, V та P мають поді-
бну структуру і складаються з кількох вкладених циклів. Оператори для q , Os та T також схожі між собою за
структурою. Перший етап розпаралелювання підпрограми "2. Обчислення сіткових значень правих
частин Q …" полягає у включенні після оператора оголошення та ініціалізації змінних такої композиції двох
операторів:
"Виділити пам’ять для лінійних масивів та занести значення з
4-вимірних масивів для H, T, U, V, Q, Pr1 у лінійні масиви";
Паралельне програмування. Розподілені системи і мережі
79
"Виділити область пам’яті на GPU та скопіювати лінійні масиви
з CPU в GPU";
Далі виконується розпаралелення для кожного зі згаданих шістьох складених операторів для окремих
функцій. Розглянемо перетворення першого складеного оператора – "Обчислення правих частин Q
для (U)". Узагальнена послідовна САА-схема цього оператора має вигляд
"Обчислення правих частин Q для (U)"
==== ДЛЯ (h ВІД 0 ДО Pk-1)
ЦИКЛ
ДЛЯ (k ВІД 0 ДО Lmz-1)
ЦИКЛ
"Заповнити масив для Q значеннями (0)";
"Визначити змінну (FIM) типу (float) = (FIR)"
ДЛЯ (j ВІД 0 ДО Mmz-1)
ЦИКЛ
"Виконати передрозрахунок для першої похідної (Pr1)";
"Виконати обчислення першої похідної (Pr1)";
"Обчислити праві частини Q для (U)";
"Збільшити (FIM) на (DY)"
КІНЕЦЬ ЦИКЛУ
КІНЕЦЬ ЦИКЛУ
КІНЕЦЬ ЦИКЛУ
"Обчислити складові рівняння переносу в напрямку X для (U)";
"Обчислити складові рівняння переносу в напрямку Y для (U)";
"Обчислити складові рівняння переносу в напрямку Z для (U)";
"Записати результуючі дані у файли для (U)";
Розпаралелювання подібних складених операторів у програмі полягає у їх заміні на кілька Cuda-ядер.
Перетворення включає такі основні етапи:
1) заміна операторів передрозрахунку та обчислення першої похідної Pr1 на два Cuda-ядра;
2) запуск ядра, що обчислює праві частини Q рівнянь QR ;
3) запуск функцій-ядер, що виконують обчислення на Cuda складових рівняння переносу (адвективних та
дифузійних) в напрямках X, Y та Z відповідно. Обчислення виконуються як права частина Q рівняння QR ;
4) копіювання отриманих значень Q з відеопам’яті у пам’ять CPU.
Далі наведено узагальнену паралельну схему обчислення правих частин рівнянь для функції U. Розпара-
лелення складених операторів, що обчислюють праві частини рівнянь для функцій V та P, виконується аналогі-
чним чином.
"Паралельне обчислення правих частин Q для (U)"
==== Запуск_Ядра(blocksPerGrid1, threadsPerBlock1)(
"Виконати передрозрахунок для першої похідної (Pr1)";
);
Запуск_Ядра(blocksPerGrid2, threadsPerBlock2) (
"Виконати обчислення першої похідної (Pr1)";
);
"Заповнити масив для Q у відеопам’яті значеннями (0)";
Запуск_Ядра(blocksPerGrid3, threadsPerBlock3)(
"Обчислити праві частини Q для (U) на Cuda";
);
"Занести в масив (RZ) значення для функції (U)";
"Обчислити складові рівняння переносу в напрямку X на Cuda для (U)";
"Обчислити складові рівняння переносу в напрямку Y на Cuda для (U)";
"Обчислити складові рівняння переносу в напрямку Z на Cuda для (U)";
"Скопіювати масив значень Q з відеопам’яті у пам’ять CPU";
"Занести значення з лінійного масиву для Q у 4-вимірний масив";
"Записати результуючі дані у файли для (U)";
"Обчислити складові рівняння переносу в напрямку X на Cuda для (RZ)"
==== "Оголошення та ініціалізація змінних";
Запуск_Ядра(blocksPerGrid4, threadsPerBlock4)(
Паралельне програмування. Розподілені системи і мережі
80
"Виконати передрозрахунок для першої похідної (Pr1)";
);
Запуск_Ядра(blocksPerGrid5, threadsPerBlock5) (
"Виконати обчислення першої похідної (Pr1)";
);
Запуск_Ядра(blocksPerGrid6, threadsPerBlock6)(
"Виконати передрозрахунок для першої похідної (Pr2)";
);
Запуск_Ядра(blocksPerGrid7, threadsPerBlock7) (
"Виконати обчислення першої похідної (Pr2)";
);
Запуск_Ядра(blocksPerGrid8, threadsPerBlock8) (
"Виконати підсумовування (Pr1) та (Pr2)";
);
ЧЕКАТИ ‘Обробка у всіх потоках закінчена’;
"Звільнення зарезервованої пам'яті для змінних";
У вищенаведеній схемі RZ – масив, у якому зберігаються значення залежної функції, для якої обчис-
люється права частина рівняння; Pr1 та Pr2 – допоміжні масиви для зберігання значень першої похідної.
Далі наведено паралельну схему для оператора обчислення правих частин рівнянь для q . (Для функцій
Os та T розпаралелення виконується аналогічним чином). У схемі використовується вищенаведений складе-
ний оператор "Обчислити складові рівняння переносу в напрямку X на Cuda для (RZ)".
Паралельне обчислення складових в напрямках Y та Z є подібним за структурою до згаданого оператора і тут
не наводиться.
"Паралельне обчислення правих частин Q для (q)"
==== "Заповнити масив для Q у відеопам’яті значеннями (0)";
"Занести в масив (RZ) значення для функції (q)";
"Обчислити складові рівняння переносу в напрямку X на Cuda для (q)";
"Обчислити складові рівняння переносу в напрямку Y на Cuda для (q)";
"Обчислити складові рівняння переносу в напрямку Z на Cuda для (q)";
"Скопіювати масив значень Q з відеопам’яті у пам’ять CPU";
"Занести значення з лінійного масиву для Q у 4-вимірний масив";
"Записати результуючі дані у файли для (q)";
Завершальний етап розпаралелювання підпрограми "2. Обчислення сіткових значень пра-
вих частин Q …" полягає у вставці операторів звільнення зарезервованої пам'яті для змінних у пам’яті
CPU та GPU.
3. Результати експерименту
На основі побудованих у розділі 2 САА-схем алгоритмів прогнозування було реалізовано послідовну
та паралельну програми мовою С++ для виконання на CPU та GPU відповідно. Як уже згадувалося в підроз-
ділі 2.2, у даній роботі здійснено розпаралелення підпрограми обчислення значень правих частин Q рівнянь
QR , виконання якої займає найбільшу кількість часу порівняно з іншими частинами послідовної програ-
ми. Розроблені програмні засоби були використані для короткострокового прогнозу погоди на території
України.
Випробування проводились із використанням процесора i5-3570 (у 32-бітному режимі) та графічного
прискорювача GeForce GTX 650 Ti, що має наступні характеристики:
• 768 stream-процесори (CUDA-ядра), базова частота 928 МГц;
• обсяг глобальної пам’яті 1024 МБ;
• базова частота пам’яті 5400 МГц.
Обчислення в експериментальній задачі для підрахунку часу проводились із початковими умовами, за-
даними у вузлах просторової сітки, розбитої на 60 × 60 × 8 частин. Обчислення проводились для підрозбиттів
вихідної сітки із кроком подрібнення 15 × 15 × 2 частин, починаючи з вихідної сітки. У таблиці наведено
значення розміру задачі N (кількість вузлів розбиття розрахункової сітки), часу виконання паралельної cT та
послідовної sT програм, а також мультипроцесорне прискорення cs TTAcc . На рисунку показано графік
залежності мультипроцесорного прискорення від розміру задачі.
У подальшому планується виконати розпаралелення й інших частин послідовної програми, зокрема,
підпрограм інтерполяції даних та розрахунку прогностичних даних, що позначені у послідовній схемі номе-
рами 1 та 3 відповідно (див. розділ 2).
Паралельне програмування. Розподілені системи і мережі
81
Таблиця. Час виконання послідовної та паралельної підпрограм (CalkQ) обчислення значень
правих частин рівнянь, та мультипроцесорне прискорення Acc
Рисунок. Графік залежності мультипроцесорного прискорення від розміру задачі
Висновки
Розроблено алгеброалгоритмічні специфікації послідовного та паралельного алгоритмів метеорологіч-
ного прогнозування із застосуванням створеного інтегрованого інструментарію проектування та синтезу про-
грам. Алгоритми подано в природно-лінгвістичній формі (мові САА/1), особливостями якої є незалежність
від мови програмування і можливість автоматизованого перекладу в довільну мову для забезпечення відпові-
дності алгоритмів та асоційованих з ними програм. Розроблено послідовну та паралельну програмні реаліза-
ції для вирішення задачі прогнозування погоди для території України. Проведено експеримент з виконання
паралельної програми на відеографічному прискорювачі, що показав значне підвищення продуктивності об-
числень порівняно із послідовною програмою.
1. Прусов В.А., Дорошенко А.Ю. Моделювання природних і техногенних процесів в атмосфері. – К: Наукова думка, – 2006. – 542 с.
2. Андон Ф.И., Дорошенко А.Е., Цейтлин Г.Е., Яценко Е.А. Алгеброалгоритмические модели и методы параллельного программирова-
ния. – Киев: Академпериодика, 2007. – 631 с.
3. Прусов В.А., Дорошенко А.Е., Приходько С.В., Тырчак Ю.М., Черныш Р.И. Методы эффективного решения задач моделирования и
прогнозирования региональных атмосферных процессов // Проблеми програмування. – 2004. – № 2–3. – С. 556–569.
4. Тирчак Ю.М., Черняк А.І. Паралельні обчислення для ефективної реалізації чисельного прогнозу погоди // Там само. – 2006. – № 2–3. –
С. 110–117.
5. Harris M. GPGPU: General-Purpose Computation on GPUs. – In SIG-GRAPH 2005 GPGPU COURSE, 2005.
6. Яценко Е.А. Интеграция инструментальных средств алгебры алгоритмов и переписывания термов для разработки эффективных парал-
лельных программ // Проблемы программирования. – 2013. – № 2. – С. 62–70.
7. Дорошенко А.Ю., Бекетов О.Г., Жереб К.А., Яценко О.А. Формалізоване проектування та синтез паралельних програм для відеографі-
чних прискорювачів // Там само. – 2013. – № 3. – С. 38–46.
8. Боресков А.В., Харламов А.А. Основы работы с технологией CUDA. – ДМК-Пресс, 2010. – 232 c.
9. Прусов В. А., Сніжко С. І. Математичне моделювання атмосферних процесів. – К.: Ніка-Центр, 2005. – 496 с.
10. Толстих М. А., Фролов А. В. Некоторые современные проблемы численного прогноза погоды. – М: Известия РАН. Физика атмосферы
и океана, 2005. – Т. 41, № 3. – С. 315–327.
11. Ківганов А. Ф., Хоменко Г. В., Хохлов В. М., Бондаренко В.М. Гідродинамічні методи прогнозу погоди і сіткові методи їх реалізації. –
Одеса: Одеський державний екологічний університет. – 2002. – 179 с.
12. http://www.dwd.de (веб-сайт метеорологічного центру у м. Офенбах)
N 33489 63536 107653 168540 248897 351424 478821 633788 819025 1037232 1291109 1583356
Ts, с 7.45 12.64 20.35 31.80 49.95 75.49 104.25 148.04 197.33 252.24 328.19 411.12
Tc, с 0.15 0.27 0.50 0.70 1.01 1.42 1.86 2.47 3.13 3.93 4.88 6.02
Acc 48.91 46.59 44.30 45.41 49.63 53.14 56.16 59.99 63.10 64.12 67.29 68.27
http://www.dwd.de/
|