Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Разработка программного обеспечения OpenFoam в распределенной вычислительной средеДля иллюстрации возможностей разработанного подхода приведем решениедля сложного инженерного приложения – расчет задачи течения. Поскольку при решении уравнений динамики течений взаимодействие между параллельными процессами очень интенсивное, реализация таких задач вызов для любой системы распределенных вычислений. Данный пакет будет установлен на диск с ПО, доступным для всех пользователей кластера. Он подмонтирован в папку /opt/. Итак, для установки OpenFOAM необходимо выполнить следующие шаги: 1) В окне терминала, добавить OpenFOAM в список местоположений в хранилище для apt, чтобы искать, VERS=$(lsb_release -cs) sudo sh -c "echo deb http://www.openfoam.org/download/ubuntu $VERS main > /etc/apt/sources.list.d/openfoam.list" 2) Обновить список пакетов APT для учета нового местоположения хранилища sudo apt-get update 3) Установка OpenFOAM (211 в название относится к версии 2.1.1): sudo apt-get install openfoam211 4) Установить Paraview sudo apt-get install paraviewopenfoam3120 Для того, чтобы использовать установленный пакет OpenFOAM, надо выполнить следующие шаги 1) Открыть Bashrc файл в домашнем каталоге пользователя gedit ~/.bashrc 2) В нижней части этого файла, добавить следующие строки source /opt/openfoam211/etc/bashrc 3) Оттестировать приложения icoFoam, из пакета OpenFOAM, icoFoam -help 4) " Usage " должно появиться сообщение, что установки и конфигурации пользователя завершены. Для запуска последовательных расчетов необходимо выполнить следующие шаги: Создать директорию проекта в $ HOME/OpenFOAM каталоге с именем <пользователь> -2.1.1 и создать каталог с именем, запустив в нем, mkdir -p $FOAM_RUN Скопировать папку примеры в OpenFOAM каталог. Если переменные среды OpenFOAM установлены правильно, то следующая команда приведет к результату: cp -r $FOAM_TUTORIALS $FOAM_RUN Для примера рассмотрим первый случай несжимаемого ламинарного потока в полости: cd $FOAM_RUN/tutorials/incompressible/icoFoam/cavity blockMesh icoFoam paraFoam Файл system/decomposeParDict задает параметры для распараллеливания задачи: • параметр numberOfSubdomains должен соответствовать числу параллельных процессов; • параметр method задает метод для разбиения области; • блок simpleCoeffs используется в случае метода «simple» («n (a b c)» указывает, как именно разбивать область (a * b * c = numberOfSubdomains)). Директория 0 содержит начальные условия задачи, физические свойства переменных указаны в constant/transportProperties. Мы запустим расчеты с ∆t=10-5. Я не стану приводить содержимое конфигурационных файлов, так как это заняло бы довольно много места, а также потому, что данный пример является одним из стандартных примеров. Перед запуском расчетов необходимо подготовить данные. Для этого переходим в папку с задачей и выполняем: blockMesh Данная команда создаст сетку, для контроля можно выполнить: checkMesh Теперь можно запускать собственно расчеты. Для расчетов используется программа (solver) pisoFoam из пакета OpenFOAM: pisoFoam Наши вычисления завершились без ошибок. После этого можно запускать программу для визуализации ParaView с помощью скрипта paraFoam (результат показан на рисунке). paraFoam Для запуска параллельных расчетов необходимо выполнить следующие шаги: Вначале выполняем теже действия, что и для последовательных расчетов: blockMesh checkMesh Теперь нужно провести декомпозицию задачи. Для этого нам нужно создать файл decomposeParDict в папке system нашего примера, в котором будут указаны параметры распараллеливания задачи. Его примерное содержимое: numberOfSubdomains 2; method simple; simpleCoeffs { n (2 1 1); delta 0.001; } Параметр «numberOfSubdomains» должен соответствовать числу параллельных потоков, которые мы будем запускать (он указывает число подзадач, на которое мы разбиваем нашу задачу). Параметр «method» определяет метод, с помощью которого будет произведено разбиение задачи. В конце мы определяем, как именно будет разделена наша задача (на 2 области по оси x в данном случае). Теперь запускаем программу decomposePar, которая и проведет разбиение: decomposePar Теперь можно запускать расчеты qsub <скрипт> Содержимое скрипта для запуска: #!/bin/bash ~/ openfoam.sh <директория_с_данными> pisoFoam После выполнения расчетов запускаем программу reconstrucPar: reconstructPar Теперь мы можем просмотреть результаты при помощи ParaView (paraFoam – скрипт OpenFOAM, подготавливающий данные для ParaView и запускающий данную программу): paraFoam Рисунок 4.2 - Просмотр результата в ParaView
Приведенный пример показывает, что даже очень сложные задачи с сильным взаимодействием между параллельными процессами удается достаточно эффективно решать с помощью облачных технологий.
|