УДК 528.9
А.А. ПОЛОНСКИЙ*
К ВОПРОСУ О РАСЧЕТЕ МЕТЕОРОЛОГИЧЕСКИХ УСЛОВИЙ В ОБЛАЧНОЙ ИНФРАСТРУКТУРЕ AMAZON
'Институт проблем математических машин и систем НАН Украины, г. Киев, Украина
Анотаця. Розроблено i опробувано на практиЦ методику, що дозволяе прогнозувати метеоролог1чт умови у хмартй iнфраструктурi Amazon, а також тсля адаптацИ' в тших сучасних хмарних тфраструктурах.
Ключовi слова: прогноз погоди, хмарш технолога, мезомасштабна метеорологiчна модель.
Аннотация. Разработана и опробована на практике методика, позволяющая прогнозировать метеорологические условия в облачной инфраструктуре Amazon, а также после адаптации в других современных облачных инфраструктурах.
Ключевые слова: прогноз погоды, облачные технологии, мезомасштабная метеорологическая модель.
Abstract. A methodology has been developed and tested in practice that allows forecasting meteorological conditions in the Amazon cloud infrastructure and after adaptation in other modern cloud infrastructures. Keywords: weather forecast, cloud technologies, mesoscale meteorological model.
1. Введение
В Украине в последнее время разработаны и внедрены специализированные системы прогнозирования метеорологических условий с высоким пространственным разрешением для прогнозирования паводков [1], обеспечения систем ядерного аварийного реагирования данными численного прогноза погоды [2, 3] и др. Для получения численного прогноза погоды используется модель WRF [4]. Она представляет собой программу на языке Fortran, которая компилируется компилятором Intel Fortran для OC Linux с использованием библиотек MPICH и NetCDF. В работе [5] отмечено, что WRF можно скомпилировать один раз, создать архив, включив в него все динамические библиотеки, исполняемые файлы и файлы данных, затем легко распаковывать и запускать этот архив на произвольном компьютере под управлением OC Linux. На практике частые расчеты с применением WRF требуют больших вычислительных ресурсов, а доступные в Украине вычислительные ресурсы сильно ограничены. В последнее время приобретают популярность облачные сервисы, которые, в частности, можно использовать для расчета метеорологических моделей. Например, в работе [6] разработаны сервисы для прогноза погоды в облачной инфраструктуре Google.
Целью данной работы является разработка методики расчета модели WRF в облачной инфраструктуре Amazon.
2. Возможности инфраструктуры Amazon для метеорологических расчетов
Как показано в статье [4], WRF может запускаться на виртуальных серверах, так называемых инстансах, облачной инфраструктуры Amazon AWS. Это не бесплатная инфраструктура, однако она позволяет платить только за время работы инстанса. К примеру, если один час работы инстанса стоит один доллар США, а расчет выполняется с учетом загрузки входных данных и выгрузки результатов три часа, то такой расчет обойдется в три доллара. С переходом облачной инфраструктуры на посекундную тарификацию времени работы инстансов в октябре 2017 года появилась возможность существенно снизить расходы. Например, теперь, если расчёт выполняется не один час, а
© Полонский А.А., 2018
ISSN 1028-9763. Математичш машини i системи, 2018, № 2
двадцать минут, платить придется не за час, а за двадцать минут, то есть в три раза меньше. Кроме того, на протяжении 2017 года Amazon внес ряд усовершенствований в систему так называемых Spot-инстансов, что позволяет снизить расходы еще больше. Spot-инстансы используют простаивающие вычислительные мощности дата-центров Amazon в режиме биржи, где текущая цена постоянно меняется в зависимости от спроса и предложения, и час их работы стоит в два-пять раз меньше, чем у обычного инстанса. При этом, однако, нет гарантии, что инстанс не будет насильно выключен в любой момент с уничтожением всех данных на его жестком диске. Поскольку расчёты WRF длятся в среднем недолго, порядка нескольких часов, а часто даже меньше часа, эта угроза на практике не должна сильно мешать работе. В настоящей статье описывается, как создать и запустить WRF на Spot-инстансе Amazon.
3. Методика расчета
Процесс создания Spot-инстанса с помощью веб-консоли AWS подробно описан в документации [7]. После логина в консоль и выбора региона надо щелкнуть по ссылке Spot Requests в левой части экрана и на загрузившейся странице нажать кнопку Request Spot Instances. На странице создания Spot-инстанса очень много параметров (рис. 1-4), большинство из которых можно оставить равными значениям по умолчанию. В данном примере в поле AMI выбирается образ Ubuntu 16.04 (рис. 1), а в качестве типа инстанса выбирается c5.18xlarge - инстанс, в котором 36 физических ядер процессора Intel Xeon одного из последних (на 2017 год) поколений. Для выбора типа инстанса надо нажать на кнопку Select (рис. 2) и в открывшемся диалоговом окне отметить галочкой c5.18xlarge (рис. 2). В этом окне видно, что на момент написания статьи цена одного часа работы инстанса с 36-ю ядрами составляла чуть больше $0,52 в час с посекундной тарификацией. Как уже говорилось, цена за час работы Spot-инстанса постоянно меняется, и график ее изменений в прошлом можно посмотреть, нажав на кнопку Pricing History.
Рис. 1. Окно выбора дистрибутива Linux, типа инстанса и объема жесткого диска
Рис. 2. Выбор типа инстанса
На рис. 3 нужно поменять два параметра. Во-первых, надо указать группу безопасности, в которой будет запущен инстанс, с тем, чтобы можно было подключиться к нему по SSH. Группу сначала нужно создать. Процесс создания и редактирования групп безопасности подробно описан в документации, а также проиллюстрирован в обучающих видео на youtube, поэтому здесь не рассматривается. Далее, нужно заполнить поле User data. Это поле представляет собой Bash-скрипт, который будет автоматически выполнен на только что созданном инстансе. Скрипт устанавливает и настраивает несколько вспомогательных программ, делающих процесс работы в SSH-сессии более удобным и быстрым, а также создает учетную запись пользователя Linux с известным именем и паролем:
#!/bin/bash
# Ubuntu 16.04 EC2 User data.
# apl's password is standard.
BASEURL=http://ukr.pw
# Install software that is missing in Ubuntu by default and that makes work more comfortable:
apt-get update
apt-get -y install screen vim-nox mc traceroute psmisc
# Configure vim:
wget -O - $BASEURL/vimrc.txt > /etc/vim/vimrc
# configure color prompt with clock: cd /root
wget -O - $BASEURL/ub/dotbashrc.txt > .bashrc cp -f .bashrc /etc/skel
sed -i -e 's/APS1/#PS1/' /etc/bash.bashrc
wget -O - $BASEURL/ub/prompt.txt >> /etc/bash.bashrc
# Configure password auth in SSH and create a user to log in as:
sed -i -e "s/APasswordAuthentication no/PasswordAuthentication yes/"
/etc/ssh/sshd config
systemctl restart sshd.service
sed -i -e "s/:100:/:99:/" /etc/passwd
useradd -u 100 -g 27 -d /home/apl -c "Sasha Polonsky" -s /bin/bash -m -p
'$6$1TLo1Ure$L3hqJ5 5 4iyv/nI08i6Lkbf4fT7Yh3cRsgYMxS0FK0feRh4cR9qn/HY2EHm n7gxjaSMwaByk6t3HLKK7KKD06F0' apl
(■Add new tag
Рис. 3. Группа безопасности и скрипт User data
Рис. 4. Кнопка запуска инстанса
Для создания инстанса надо нажать кнопку Launch (рис. 4). При этом остальные параметры на рис. 4 можно не менять. Консоль выдаст предупреждение о том, что инстансу не присвоен ключ для авторизации по SSH. Это предупреждение можно игнорировать, так как скрипт из поля User data создаст пользователя с паролем, и ключ
будет не нужен. В появившемся окне не надо ставить галочку, подтверждающую согласие на запуск инстанса без ключа, и следует нажать OK. Появится сообщение о том, что запрос на запуск Spot-инстанса успешно создан.
На практике инстанс по запросу обычно создается довольно быстро, в течение минуты. Созданный инстанс сразу же отобразится на странице Instances под ссылкой слева (рис. 5). На этой странице в нижней части экрана будет отображен IP-адрес инстанса, который нужен для подключения к инстансу по SSH. На рис. 5 этот адрес обведен красной рамкой. Кроме адреса, для подключения нужны имя пользователя и пароль, которые задаются в скрипте из поля User data. Рекомендуется использовать уникальное имя пользователя и пароль, чтобы доступ к инстансу «случайно» не получили хакеры.
Resource Groups v * £1 Sasha Polonsky » Ohio " Support »
EC2 Dashboard
Events
Tags
Reports
Limits
E INSTANCES | Instances
Launch Templates Spot Requests Reseived Instances Dedicated Hosts
0 IMAGES AMIS
Bundle Tasks
, ELASTIC BLOCK U STORE
Volumes Snapshots
NETWORK & ^ SECURITY Security Groups Elastic IPs
Launch Instance v
Connect Actions v
m о ф
Q Filter by t: ags and attributes or search by keyword Q 1 to 1 of 1
■ Name ' Instance ID ж Instance Type Availability Zone ■*• Instance State Status Checks Alarm Status Public DNS (IPv4)
■ c5.18xl spot i-0 e8 a6 d31092a c55 b7 c5.18xlarge us-east-2a # running S Initializing Norm ec2-18-219-49-62.u
instance: | ¡-0e8a6d31092ac55b7 (c5.18xl spot) Public DNS: ec2-18-219-49-62.us-east-2.compute.amazonaws.com Description Status Checks Monitoring Tags
В H П
Instance ID i-0e8a6d31092ac55b7
Instance state running
Instance type c5.18xlarge Elastic IPs
Public DNS (IPv4) ec2-18-219-49-62. us-
east-2.compute.amazonaws.com
IPv4 Public IP
18.219.49.62 1
Availabil
ty zone
us-east-2a
Security groups OpenFromEnv. view inbound rules Scheduled events No scheduled events
AMI ID ubuntu/images/hvm-ssd/ubuntu-
xenial-16.04-amd64-server-20171121.1
iami-iWAHacTl
IPv6 IPs Private DNS
Private IPs Secondary private IPs VPC ID Subnet ID
ip-172-31-13-81. us-east-2. compute, internal 172.31.13.81
vpc-9a14abf3 subnet-1 a3fb373
V
Рис. 5. IP-адрес созданного инстанса
К созданному инстансу можно подключиться с помощью SSH-клиента, например, PuTTy. Инстанс выглядит как обычный сервер Ubuntu 16.04, за исключением того, что подсказка для ввода команд содержит в себе серверное время (рис. 6). Такая подсказка позволяет наглядно следить за тем, сколько минут и секунд выполнялась та или иная команда. Это полезное дополнение было создано скриптом из поля User data.
В окне PuTTy можно загружать, распаковывать и запускать WRF привычным способом, выполняя команду за командой. Целесообразно не вводить команды руками, а заранее создать из них скрипт, который выполнится без участия пользователя с максимальной скоростью, ограниченной только возможностями сети, процессора, памяти и жесткого диска. Скрипт можно разместить где-нибудь снаружи, на веб-сервере, откуда его легко загрузить на инстанс. На веб-сервере скрипт можно будет легко менять, запуская WRF на разных областях и с разными разрешениями по пространству и времени.
На рис. 6 показано окно PuTTy, в котором подобный скрипт загружается с вебсервера, автоматически запускается и начинает загружать и распаковывать архив с WRF. На рис. 7 тот же скрипт показан в момент, когда он уже загрузил и распаковал архив с WRF и входными данными и запускает WRF последовательно в четыре, восемь и шестнадцать потоков. По окончании работы важно не забыть уничтожить инстанс, чтобы не платить деньги за лишнее время его работы.
18.219.49.62 - PuTTY
[19:38]:aplBip-172-31-13-81:~:>script 1.txt Script started, file is 1.txt
To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details.
[19:38]: a p l(3i p — 17 2 — 31 — 13 — 81: ~ : > wg e t -qO - http://t-ukr.pu/k-txt | bash ./run/
. / run/termuels.asc ./run/RRT M_D fITfl ./run/aerosol_lon.formatted ./run/aerosol_lat.formatted ./run/kernels.asc_s_B_03_0_9 ./run/URBPAR M_U Z E.T B L ./run/LANDUSE.TBL ./run/coeff_p.asc ./run/CLM_EXT_ICE_DFS_DATA ./run/CC H_A C TIUATE-BIN ,/run/tr67t85 . / run/ETAMPHEW_DATA . / run/CLM_ALB_ICE_DFS_DATA ./run/GENPARM.TBL
./run/CAMtr_uolume_mixing_ratio.A1B . / run/bulkradii.asc_s_0_03_0_9 ./run/UEGPARM.TBL
Рис. 6. Подсказка с системным временем и начало работы скрипта автоматизации
Рис. 7. Скрипт автоматизации в стадии запуска WRF в несколько потоков
5. Выводы
В статье разработана методика расчета метеорологической модели WRF в облачной инфраструктуре Amazon. Методику опробовано на практике и показано, что модель может быть развернута и запущена на счет очень быстро, за время порядка нескольких минут. Это позволяет экономить ресурсы, направленные на разворачивание, конфигурацию, компиляцию WRF на новых вычислительных серверах. Методика с соответствующей адаптацией может быть использована на другой облачной инфраструктуре, такой как Google Cloud, Microsoft Azure, Украинская облачная инфраструктура. На основе представленной методики могут быть разработаны облачные сервисы прогноза погоды в реальном времени.
СПИСОК ИСТОЧНИКОВ
1. Оперативне прогнозування метеоролопчних полiв для систем попередження про паводки у Карпатах / 1.В. Ковалець, О.В. Халченков, С.М. Анутч [та ш.] // Математичш машини i системи. -2015. - № 3. - С. 118 - 125.
2. Впровадження системи ядерного аваршного реагування JRODOS в Укра!ш та И забезпечення даними оперативного метеоролопчного прогнозування / С.М. Анутч, G.O. Gвдiн, 1.В. Ковалець [та ш.] // Зб. праць XI мiжнар. наук.-практ. конф. «Математичне та iмiтацiйне моделювання систем МОДС 2016», (Жукш, 27 червня - 1 липня 2016 р.). - Чертпв: ЧНТУ, 2016. - С. 93 - 96.
3. Халченков А.В. Верификация системы прогнозирования метеорологических полей вокруг Ровенской АЭС на основе использования модели WRF / А.В. Халченков, И.В. Ковалец, А.М. Романенко // Математичш машини i системи. - 2015. - № 1. - С. 130 - 138.
4. [Електронний ресурс]. - Режим доступу: https://journals.ametsoc.org/doi/full/10.1175/BAMS-D-15-00308.1.
5. Полонский А.А. Автоматизация удаленных расчетов метеорологической модели WRF в параллельном режиме / А.А. Полонский, И.В. Ковалец, С.Н. Анулич // Мiжнар. наук.-практ. конф. «Системи шдтримки прийняття ршень. Теорiя i практика», (Кшв, червень 2017 р.). - Кшв, 2017. -С. 54 - 57.
6. [Електронний ресурс]. - Режим доступу: https://journals.ametsoc.org/doi/full/10.1175/BAMS-D-15-00308.1.
7. [Електронний ресурс]. - Режим доступу: https://journals.ametsoc.org/doi/full/10.1175/WAF-D-16-0075.1.
8. Spot Instance Requests / AWS Documentation, Users's Guide [Електронний ресурс]. - Режим доступу: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html#using-spot-instances-request.
Cтаття надтшла до редакцп 17.04.2018