Текст ВКР (1218920), страница 3

Файл №1218920 Текст ВКР (Автоматизированный программный комплекс для поиска оптимального набора параметров весового метода конечных элементов на вычислительном кластере) 3 страницаТекст ВКР (1218920) страница 32020-10-05СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

– запускать на выполнение команды оболочки.

Также имеются встроенные редактор McEdit и программа для просмотра файлов [9]. Таким образом, на кластере имеются все необходимые средства для редактирования и настройки компонентов программного комплекса.

Отдельно стоит упомянуть об использовании gnuplot для построения графиков результатов. Возможно визуализировать все данные с поддержкой XWindow, но в случае работы программного комплекса это не является необходимым. Гораздо удобнее выводить графики в файлы определенного формата, которые сразу же можно использовать в каких-либо публикациях или же для наглядного сравнения различных наборов параметров.

Построение графиков можно выполнять во многих свободно-распространяемых программах gnuplot, QtiPlot, Veusz и других. Большинство этих программ имеют интерактивный ГПИ, позволяющий выполнить точную настройку каждого графика. Перед программным комплексом стоит совершенно иная задача – необходимо создавать много однотипных графиков для различных наборов данных. В этом случае, редактировать каждый график вручную будет значительно затратным по времени. В gnuplot существует возможность строить графики по заданному сценарию – скрипту. Это обстоятельство позволяет производить построение множество графиков без участия человека – в автоматизированном режиме.

    1. 2.3 Взаимодействие компонентов и автоматизация

Разработку логической составляющей программного комплекса было решено производить на программном языке высокого уровня C++. Это решение обосновано следующими свойствами.

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

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

Данный язык программирования обладает богатой историей и широким разнообразием функциональных библиотек и несмотря на обилие критики в его адрес, (например [10]) разумное его применение позволяет избежать затрат времени на написание прежде реализованных функций. Кроме того существует большое число различных интегрированных сред разработки ( integrated development environment – IDE) с открытым кодом, позволяющих производить отладку программного кода.

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

– процесс разработки не зависит он наличия интернет соединения;

– достигается оптимальное распределение времени на проектирование;

– минимизируется занятость кластера.

Переносимость программного кода достигается путем его компиляции на кластере.

Наличие на кластере командной оболочки Bash и интерактивного графопостроителя gnuplot позволяет оптимально использовать все предоставляемы возможности. Bash как и gnuplot – представители так называемых «скриптовых» языков. Их отличительной особенностью является отсутствие необходимости компиляции кода перед его исполнением.

Представление программных компонент в виде отдельных скриптов является широко распространённым в Unix-подобных системах. Этим достигается распределение большой задачи на специфические подзадачи. В результате при возникновении ошибок – их устранение сводится к работе с каким-то отдельным компонентом, а не со всем комплексом в целом.

Командная оболочка для Linux – это не просто промежуточное звено между пользователем и ОС. Написанные на ее языке программы обычно называют скриптами или сценариями. В сценарии прописываются всевозможные команды и настройки для ОС Linux. Кроме этого существует возможность использования и таких стандартных для языков программирования возможностей, как условные операторы и циклы. Широкое применение скриптов в Unix-подобных системах связано также с их удобностью в задачах администрирования системы, когда нет необходимости использовать языки программирования высокого уровня [11].

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

Bash (от англ. Bourne again shell, каламбур «Born again» shell – «Возрождённый» shell) – усовершенствованная и модернизированная вариация командной оболочки Bourne shell [12]. Одна из наиболее популярных современных разновидностей командной оболочки UNIX. Особенно популярна в среде Linux, где она часто используется в качестве предустановленной командной оболочки.

Bash – мощный и простой в использовании язык сценариев, преимущества интерактивного взаимодействия, заимствованные из семейства командных оболочек C Shell, свобода распространения и полностью открытые исходные коды [12].

Отличия грамматики Bash и Bourne shell незначительны. Подстановка переменных, параметров, использование апострофов и кавычек, перенаправление – реализованы идентично. Поддержка этих возможностей в Bash основана на стандарте Posix 1003.2. Bash значительно отличается от других командных интерпретаторов по своей функциональности. По этой причине он негласно используется в качестве стандарта на современных Linux-серверах.

Относительно сложно происходит отладка Bash-скриптов по той причине, что командная оболочка не предусматривает такого модуля. Для того чтобы локализировать ошибки скрипта следует чаще пользоваться командой echo – вывода данных в консоль или же в файл лога. Это позволит следить за значениями переменных и отображать ход выполнения программы. Способы фиксации состояния исполнения программы не ограничиваются командой echo.Инструменты интерпретатора bash, которые могут помочь при отладке неработающих сценариев [12]:

– команда-фильтр tee, которая поможет проверить процессы и потоки данных в критических местах;

– bash -n scriptname - проверит наличие синтаксических ошибок, не запуская сам сценарий. Того же эффекта можно добиться, вставив в сценарий команду set -n или set -o noexec. Но некоторые из синтаксических ошибок не могут быть выявлены таким способом;

– bash -v scriptname - выводит каждую команду прежде, чем она будет выполнена. Того же эффекта можно добиться, вставив в сценарий команду set -v или set -o verbose. Ключи -n и -v могут употребляться совместно: bash -nv scriptname;

– bash -x scriptname - выводит, в краткой форме, результат исполнения каждой команды. Того же эффекта можно добиться, вставив в сценарий команду set -x или set -o xtrace.

Вставив в сценарий set -u или set -o nounset, вы будете получать сообщение об ошибке unbound variable всякий раз, когда будет производиться попытка обращения к необъявленной переменной.

Функция «assert», предназначенная для проверки переменных или условий, в критических точках сценария (эта идея заимствована из языка программирования C).

В случае написания сценариев для gnuplot ситуация практически аналогичная, но обладает своими особенностями.

Программа gnuplot – это интерактивная среда построения графиков с консольным интерфейсом. Автоматизировать построение графиков позволяет использование различных сценариев. Сам по себе сценарий для gnuplot содержит набор статических настроек, которые программа использует последовательно – подобно тому, как это делает интерпретатор Bash.

Необходимым условием для работы gnuplot с большим количеством входных файлов является использование имен файлов ввода и вывода в качестве переменных. Для этого в Bash используется команда:

gnuplot<<EOF …. EOF

которая указывает, что после EOF и до повтора этого управляющего слова находится встроенный файл команд для gnuplot. Такое включение gnuplot-элементов в Bash-сценарий позволяет пользоваться возможностями Bash при построении графиков. Как упоминалось выше – Bash-сценарии представляют пользователю широкие возможности по программированию, которые не предусмотрены в gnuplot. Благодаря этому достигается автоматизация построения графиков без участия человека.

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

Резюмируя все аспекты проектирования можно выделить следующие основные моменты:

– возможности вычислительного кластера позволяют реализовать все необходимые компоненты программного комплекса;

– автоматический режим работы программного комплекса позволяет исследователю не вникать в сложности взаимодействия составляющих компонентов на различных программных языках;

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

3 Компоненты программного комплекса

3.1 Общая схема

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

Analyzer.exe– программа анализа, объединяющая весь программный комплекс в единое целое (далее Анализатор);

starter и script – написанные на Bash исполняемые скрипты, осуществляющие постановку задачи на счет (далее Запускатель);

bash2d.sh и plot2d.sh – Bash-скрипты для программы GNUPlot, обеспечивающие рисование графиков зависимости нормы погрешности решений от шага (сценарии Визуализатора);

bash3d.sh и plot3d.sh – Bash-скрипты для программы GNUPlot, обеспечивающие рисование 3D-графиков по произвольным точкам в плоскости (скрипты Визуализатора);

copy.sh – вспомогательный скрипт, используемый Анализатором для результирующего сбора информации.

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

Параметры для счета должны принимать из командной строки в следующем формате:

<№_сетки><кол-во_потоков><δ><ν>< ν*><флаг><файл_парметров>,

где <флаг> может принимать значение 0 для этапа массового счета и 1 – для этапа счета с подготовкой данных для рисования.

После запуска с параметром <флаг> равным 1 должна создаваться папка с уникальным именем. В консоль должен выводиться полный путь до этой папки. В папке должны создаваться следующие файлы:

– u.dat и v.dat – файлы с данными для построения 3D-поверхностей в формате:

<1-я_компонента><2-я_компонента><Значение_абс_погрешности>;

– u.err и v.err – файлы с данными для вычисления процентов узлов с заданной погрешностью формата:

<значение_абсолютной_погрешности_в_узле_1>

<значение_абсолютной_погрешности_в_узле_N>

где N – число узлов конечно-элементной сетки.

Результаты должны выводиться в консоль в следующем формате:

<исследуемое_значение_1> …< исследуемое_значение_n><код1><код2>,

где n – количество величин, которые предполагается исследовать; <код1> и <код2> - содержат числовые характеристики распределения погрешностей для первой и второй компонент решения.

Комплекс предоставляет конечному пользователю возможности проведения расчета и анализа с использованием аппаратных ресурсов вычислительного кластера. Напомним, что доступ к кластеру осуществляется по протоколу SSH при помощи терминала Putty.exe, установленного на локальной машине (глава 2.2).

При работе на локальной машине под управлением операционной системы Windows файловый обмен между кластером и локальной машиной удобно осуществлять при помощи программы WinSCP – свободно распространяемой в сети. В данной программе редактирование настроечных файлов программного комплекса осуществляется в обычном текстовом редакторе, например, AkelPad, что более привычно для пользователей Windows. Встроенные возможности кластера также позволяют создавать, редактировать и удалять файлы входных данных, если в этом есть необходимость, но интерфейс в данном случае будет ограничиваться функционалом и возможностями редактора MCEdit [9].

Зависимость компонентов программного комплекса показана на диаграмме (рисунок 3):

Рисунок 3 – Компоненты программного комплекса

Запуск программного комплекса производится в автоматическом и в ручном режимах. Автоматический режим является режимом работы по умолчанию и предусматривает два этапа исследования начальных наборов параметров. Каждому этапу работы предшествует автоматическая подготовка входных данных (генерация файла с наборами параметров).

Характеристики

Список файлов ВКР

Автоматизированный программный комплекс для поиска оптимального набора параметров весового метода конечных элементов на вычислительном кластере
Маслов О_
Плакаты.vsd
Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7029
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее