Не пропустите важное

 

Подпишитесь на информацию о выходе обновлений, скидках и акциях.

Облачные вычисления

Введение

В данной статье мы рассмотри вариант применения облачных технологий для задачи моделирования пожара с помощью программ FDS и Fenix+.

Облачные вычисления — это модель обеспечения повсеместного и удобного сетевого доступа по требованию к общему пулу вычислительных ресурсов, например, сетям передачи данных, серверам, устройствам хранения данных и т.п.

Проблема

При моделировании пожара полевым методом, с использованием FDS, часто возникает ситуация нехватки ресурсов локального компьютера для проведения расчета. Отсутствие требуемых ресурсов в виде оперативной памяти и количества ядер, в некоторых случаях, возможно, компенсировать соответствующей подготовкой модели расчета. Тем не менее, существуют такие расчетные задачи, для которых невозможно произвести моделирование даже путем корректировки модели. Как следствие выполнить расчет во время и сдать работу заказчику практически невозможно.

Решение

Решением в данном случае может быть аренда вычислительных мощностей, то есть применение облачного сервиса, для моделирования развития пожара с помощью FDS.

Что дает применение облачных сервисов с точки зрения моделирования пожара?

  1. Экономия времени и денег на проведение расчета. Эффект экономии достигается следующими предположениями.
    1. Арендовать виртуальный облачный сервер, мощности соответствующей расчету значительно дешевле, чем приобретение реального физического сервера;
    2. Для особо сложных расчетов имеется возможность настройки виртуального расчетного кластера, что дает значительную экономию времени на проведение расчета;
  2. Имя ввиду тот факт, что моделирование пожара продолжительный процесс, применение виртуального сервера расположенного в «облаке», позволит разгрузить собственный рабочий компьютер.
  3. Облачные сервисы позволяют арендовать практические неограниченное количество серверов, что позволяет проводить множество расчетов одновременно.

Начало

Концептуальная схема работы

  1. Загрузка и настройка программного обеспечения;
  2. Выбор облачного сервиса и регистрация;
  3. Подключение системы расчетов;
  4. Подготовка виртуального сервера;
  5. Сохранение образа виртуального сервера;
  6. Запуск реального расчета;
  7. Сбор результатов и мониторинг расчета.

Подготовительный этап

Загрузка и настройка программного обеспечения

Вам понадобятся:

  1. FTP клиент (FileZilla) <скачать>
  2. SSH клиент (pytty) <скачать>
  3. Fenix+ (опционально) <ознакомится>
  4. Платежная карта Visa или MasterCard (для оплаты аренды сервера)

После того как Вы скачаете и установите, программное обеспечение указанное выше, можно перейти к следующему шагу.

Первый этап

Выбор облачного сервиса и регистрация

В данной инструкции я буду использовать облачный сервис digitalocean.com, это простой, эффективный и качественный сервис.

a) Зарегистрируйтесь в DigitalOcean по следующей ссылке: Регистрация

b) В правой верхней части экрана нажмите кнопку Sign Up

с) В открывшейся странице, заполните поля, это электронная почта и пароль, и нажмите кнопку «SIGN UP»

d) После создания аккаунта, вы будете перемещены в панель управления облачным сервисом

Второй этап

Подключение системы расчетов

a) После регистрации необходимо, подключить Вашу расчетную карту. Для этого в меню слева нажмите Billing

b) Вас попросят подтвердить email указанный при регистрации

После подтверждения email в правом верхнем углу нажмите «Manage Payments»

Далее мы имеем возможность выбрать два способа оплаты за услуги облачного сервиса.

  1. Оплата банковской картой
  2. PayPal (Платежная система)

Я рассмотрю первый способ. Итак, необходимо заполнить данные о Вашей карте в открывшемся окне

Важно заполнить данные, в точном соответствии с данными на Вашей карте, по английский. Поля Please enter a name for this credit card и Promo Code, можно не заполнять. Далее нажмите ADD CREDIT CARD.

Если все данные указаны, верно, у вас отобразится список подключенных карт.

Третий этап

Подготовка виртуального сервера

Данный этап наиболее технически сложный, наша задача подготовить, операционную систему, виртуальной машины для проведения дальнейших расчетов. Подготовка операционной системы осуществляется один раз, далее настроенная система сохраняется и используется многократно при следующих расчетах

В левом верхнем углу экрана нажмите Create

В открывшемся окне заполните данные и выберите значения параметров операционной системы.

Hostname: (название сервера)

Select Size: (размер сервера)

Select Region: (регион размещения)

Select Image: (наименования образа операционной системы)

Settings: (настройки)

Далее нажмите Create Droplet

Ваш виртуальный сервер создается. Системе требуется некоторое время для подготовки сервера.

Когда сервер будет создан, слева в меню нажмите Droplets, и вы увидите только что созданный сервер его параметры и статус.

Что было сделано на данный момент?

Мы создали виртуальный сервер, обладающий 512 МБ оперативной памяти и 20 Гб жесткий диск, данный сервер работает под управлением операционной системы Ubuntu 14.04 x64. Физически данный сервер расположен в дата — центре в Амстердаме.

Сейчас самое время продолжить настройку и подключится к нашему серверу!

На подготовительном этапе мы скачали и установили PuTTy, это небольшое приложение, позволяющее удаленно подключаться к серверам под управлением операционной системы Linux.

Войдите в свою почту, в которой Вы найдете, письмо от DigitalOcean, в котором указаны учетные данные от вашего сервера (данные приведены для примера).

Запустите PuTTY, и в поле Host Name, ведите IPадрес вашего сервера далее нажмите Open, как указано на изображении ниже.

В появившемся окне предупреждения нажмите Yes.

Далее Вы увидите строку, приглашающую Вас войти на сервер, введите:

root

и нажмите Enter

Следующей строкой появится приглашение ввести пароль

Скопируйте пароль из письма и правой кнопкой мыши кликните на поле password, пароль скопируется из буфера обмена (не отображается), далее нажмите Enter.

Если все сделано правильно вы увидите приглашение командной строки

root@Server:~#

Далее выполните ряд административных действий в консоли управления сервером.

Добавление пользователя

useradd fdsuser

Создание домашнего каталога пользователя

mkdir /home/fdsuser

Создание пароля пользователя.

passwd fdsuser

После ввода данной команды, система запросит пароль для вновь созданного пользователя, а также запрос подтверждения пароля.

Необходимо задать пароль, обратите внимание, что вводимый пароль не отображается. Если пароль будет задан правильно вы увидите сообщение системы:

passwd: password updated successfully

Назначение пользователю домашнего каталога

chown fdsuser /home/fdsuser
chgrp fdsuser /home/fdsuser

Добавление пользователя в группу sudo

adduser fdsuser sudo

Проверка пользователя и дальнейшая работа

Введите команду

login

далее

fdsuser

далее пароль, таким образом, вы будете залогинены на сервере под пользователем fdsuser

Установка FDS

Скачайте дистрибутив FDS с официального сайта с помощью следующей команды:

wget http://dl.bintray.com/nist-fire-research/releases/FDS_5.5.3-SMV_5.6_linux_64.tar.gz

После выполнения команды Вы увидите процесс загрузки FDS

Так как мы скачали архив с FDS его надо распаковать, выполняем следующую команду.

tar -xvfFDS_5.5.3-SMV_5.6_linux_64.tar.gz

На этом установка FDS окончена.

Проверка работоспособности однопоточной версии FDS

Запуск однопоточной версии FDS, введите команду:

$HOME/FDS/FDS5/bin/fds5_linux_64

В результате мы увидим, сообщение Fire Dynamics Simulator

 

Запуск многопоточной версии FDS

Установим библиотеку для поддержки запуска параллельных программ

sudo apt-get install lam-runtime

Запустим

lamboot –v

Запустим FDS

mpirun –np 1 $HOME/FDS/FDS5/bin/fds5_mpi_linux_64

Итак, FDS сконфигурирована.

Подготовка FTP сервера

FTP сервер необходим нам, для того, чтобы мы могли скачать результаты расчета себе на компьютер.

Введите команду

sudo apt-get install pure-ftpd

Запустите сервер

sudo service pure-ftpd start

Далее запустите FTP-клиент FileZilla на своем рабочем компьютере, в меню Файл, выберите Менеджер сайтов и в открывшемся окне менеджера сайтов выберите «Новый сайт», и заполните следующие поля: Хост – ip адрес вашего сервера (см. почту), имя пользователя fdsuser , пароль – ваш пароль.

В строке Protocol выберите: SFTP — SSH File Transfer Protocol

Нажмите соединиться.

После соединения в программе FileZilla вы увидите содержимое каталогов на вашем виртуальном сервере. Так как вы подключались от имени пользователя fdsuser, вы будете подключены к домашнему каталогу этого пользователя. В домашнем каталоге пользователя уже будут находится некоторые файлы и папки, это архив с FDS скаченный на предыдущем шаге и папка с установленной FDS. Домашняя директория пользователя в будущем будет местом хранения выходных данных расчета.

На этом подготовка сервера закончена. Мы установили FDS, подготовили сервер для многопоточного расчета, и подготовили удобный доступ к серверу для забора результатов.

Четвертый этап

Сохранение образа виртуального сервера

Возвращаемся в панель управления digitalocean.com

В списке серверов выберите Server, далее выберите Power Off

Далее выберите Snapshots

Введите имя снапшота (снимка) и выберите Take Snapshot (сделать снимок).

Когда снапшот (снимок) будет создан, перейдите в меню ваших серверов, выберите сервер который вы настраивали и нажмите Destroy.

Что было сделано?

Мы сохранили образ настроенного сервера для дальнейшего использования, а затем удалили работающий сервер.

Пятый этап

Запуск реального расчета

Для подготовки файла входных данных для FDS, Вы можете использовать любое программное обеспечение, предназначенное для этих целей. Я буду использовать Fenix+.

Подготовка файла входных данных для FDS в Fenix+

Запустите Fenix+, подготовьте проект, далее установите время моделирования равное нулю (0,0 секунд).

И нажмите запустить расчет

Далее зайдите в папку проекта, в подпапки

Results > Сценарий 1 > fds и откройте fds файл Scenarij_1.fds

Откройте FDS файл, найдите параметр T_END (время моделирования) и установите корректное значение, в моем примере это 150 секунд.

Далее сохраните файл. На этом подготовка файла закончена.

Повторный запуск сервера и расчета

Зайдите в панель управления digitalocean.com, и выберите

Hostname: Server (Название сервера)

 

Size: (Размер, выберите соответствующий задаче)

Region: (Регион, рекомендуется использовать ближайший регион)

SelectImage: (Перейдите на вкладку MyImages, и выберите сохранённый и настроенный образ)

Далее нажмите Create Droplet

 

После того как виртуальная машина будет создана вы можете к ней подключится.

Запустите FTP клиент FileZilla и подключитесь к созданному вновь виртуальному серверу.

Далее в проводнике FTP клиента с левой стороны выберите, ваш файл FDS, и загрузите его на сервер, по умолчанию файл будет загружен в домашнюю директорию пользователя.

Далее в зависимости от того какой режим расчета требуется, запустите расчет.

Однопоточный режим

$HOME/FDS/FDS5/bin/fds5_linux_64 Scenarij_1.fds

Scenarij_1.fds – это имя вашего FDS файла.

Многопоточный режим

lamboot –v
mpirun –np 5 $HOME/FDS/FDS5/bin/fds5_mpi_linux_64 Scenarij_1.fds

Параметр np 5 означает количество ядер для расчета. (5 в данном случае)

Если сервер был правильно сконфигурирован и FDS файл создан без ошибок, расчет будет запущен.

Шестой этап

Сбор результатов и мониторинг расчета

Мониторинг расчета непосредственно после запуска.

После запуска расчета из командной строки, FDS будет осуществлять вывод о ходе расчета непосредственно в консоль, данный способ получения информации о расчете самый достоверный, так как осуществляется самой программой FDS. Может возникнуть ситуация при которой вы закроете консоль и потеряете информацию о выводе расчета, в этом случае нам поможет второй способ.

Запустите консоль заново, войдите от имени пользователя root и выполните команду

top

Команда top позволяет узнать какие процессы запущены в системе на данный момент. Пример вывода результатов команды

На изображении мы видим, 5 запущенных процессов FDS (fds_mpi_linux_), это означает, что расчет продолжается и FDS работает.

Сбор результатов

Запустите FTP клиент FileZilla и подключитесь к виртуальному серверу. В домашней директории пользователя вы увидите результаты расчета. Скачайте их в то место, откуда вы копировали файл fds.

Итоги

Мы настроили образ виртуального сервера и сохранили его. Данный образ можно использовать «по требованию», то есть тогда, когда необходимо произвести расчет. На основе данного образа можно создать несколько виртуальных серверов и запустить их одновременно для расчета нескольких заданий.

Важно. Не забывайте уничтожать виртуальные машины после проведения расчета, чтобы избежать дополнительных денежных затрат.


Назад к списку