Использование видеокарт для выполнения вычислений при решении задач строительной механики методом конечных элементов
Алгоритмы и структуры данных для параллельных вычислений в задачах строительной механики методом конечных элементов. Их программная реализация на графических процессорах. Сравнение скорости решения задачи разработанной программой с комплексом ANSYS.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 30.05.2018 |
Размер файла | 969,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Институт Государственного управления, Главный редактор -
)
Размещено на http://www.allbest.ru/
1
34ТРГСУ412
Размещено на http://www.allbest.ru/
Использование видеокарт для выполнения вычислений при решении задач строительной механики методом конечных элементов
Тактовая частота вычислительных устройств постоянно возрастала на протяжении последних шестидесяти лет. Но в настоящие время наблюдается спад темпов роста тактовой частоты. Одним из альтернативных путей повышения производительности является использование нескольких устройств для решения одной задачи-то есть параллельные вычисления.
Наряду с процессорами общего назначения, развивались используемые в графических ускорителях, предназначенные для расчётов трёхмерной графики реального времени - GPU (Graphic Processing Unit). Особенностью таких расчётов является независимость большого количества потоков данных (вершины и фрагменты графических примитивов можно обрабатывать независимо), что позволяет эффективно использовать параллельные алгоритмы и параллельные вычислительные устройства. GPU состоят из большого количества узкоспециализированных ядер, которые работают параллельно. Так как в этих ядрах не требуется реализовывать весь набор возможностей CPU (Central Processing Unit), они занимают меньшую площадь микросхемы, что позволяет разместить множество ядер в одном процессоре. Движимые рынком с высокими потребностями пользователей к высококачественной трёхмерной графике, программируемые графические процессоры эволюционировали в высоко-параллельные, многоядерные вычислительные устройства с огромным вычислительным потенциалом и пропускной способностью памяти. Современные GPU могут выполнять порядка 30000 потоков параллельно, при этом общая вычислительная скорость современных видеокарт, измеряемая количеством операций с плавающей точкой в секунду (Floating point Operations Per Second, FLOPS), преодолела рубеж в один терафлопс.
Графические ускорители также имеют собственную оперативную память, пропускная способность которой в десятки раз превосходит стандартную.
Изначально видеокарты не позволяли использовать свои вычислительные мощности для расчётов, не связанных с графикой напрямую. Для расчётов данные к GPU передавались в формате изображений (текстур), а расчётные программы загружались как шейдеры. Недостатками такого метода являются сравнительно высокая сложность программирования, ограниченный набор возможностей взаимодействия нитей GPU и другие ограничения.
Вычисления на GPU развивались достаточно быстро и их производители, такие как NVIDIA и AMD, разработали свои инструментальные средства для использования видеокарт для неграфических расчётов. Можно выделить следующие средства программирования видеокарт: NVIDIA Cuda, AMD Stream, OpenCL.
Эффективность использования многоядерных процессоров зависит от применяемых алгоритмов. Существующие проекты по использованию видеокарт для расчётов показывают от двух до трёхсот кратного увеличения быстродействия по отношению к процессорам общего назначения.
Одной из основных задач строительной механики является нахождение внутренних усилий и деформаций конструкции от заданной внешней нагрузки. Для решения этой задачи на ЭВМ в большинстве случаев применяется метод конечных элементов (МКЭ) [1]. Это обусловлено эффективностью данного метода, а также относительной простотой реализации.
При расчётах конструкций методом конечных элементов большая часть времени уходит на составление и решение систем линейных уравнений. Уточнение расчётных схем вместе с усложнением самих объектов исследования приводит к необходимости существенного увеличения параметров конечно-элементной модели (количества конечных элементов, узлов в ансамбле). Это приводит к необходимости рассмотрения моделей, описываемых системами уравнений высокого порядка. Разумеется, понятие «системы высокого порядка» достаточно условно и зависит от уровня развития вычислительной техники [2]. В публикациях конца 50-х годов и начала 60-х годов к таковым относили системы примерно из пятнадцати - двадцати уравнений. Затем «планка» поднялась до ста, нескольких сотен, нескольких тысяч. Сегодня порог составляет от миллиона до нескольких десятков миллионов уравнений. Применительно к «суперкомпьютерам» типа «CRAY-Jaguar» можно говорить о сотнях миллиардах уравнений.
В данной работе описывается разработанная реализация метода конечных элементов с применением вычислительных возможностей видеокарт.
В качестве алгоритма решения СЛАУ использовался метод сопряжённых градиентов с предобуславливателем Якоби [3]. Данный метод обладает быстрой сходимостью, малой зависимостью от степени обусловленности матрицы, а также легко распараллеливается.
При реализации использовались: язык программирования C++ [4], среда разработки Microsoft Visual Studio 2008 Professional, система автоматизированной сборки CMake, выходной формат данных Xdmf, постпроцессор ParaView. Доступ к вычислительным возможностям видеокарт осуществлялся при помощи среды OpenCL.
Одним из параметров, от которых зависит время решения СЛАУ, является размерность задачи. Важно отметить, что программные реализации одного и того же метода решения СЛАУ, использующие различные аппаратные средства, имеют различный характер зависимости времени решения от размерности задачи. Поэтому сравнение скорости решения различных реализаций, необходимо проводить с использованием задач различной размерности.
Для возможности тестирования скорости решения на задачах разных размерностей, была выбрана модель, размерность которой задаётся несколькими параметрами.
Модель приближает совместную работу протяжённой плиты конечной жёсткости и упругого основания [5]. Усилия приложены к узлам верхней грани плиты.
Институт Государственного управления, Главный редактор -
)
Размещено на http://www.allbest.ru/
1
34ТРГСУ412
Размещено на http://www.allbest.ru/
Рис. 1. Условная схема расчётной модели малой размерности
Параметрами данной модели являются количество узлов по вертикали и горизонтали. Данный набор параметров позволяет достаточно гибко менять как размерность задачи, так и ширину ленты системы уравнений. Хотя в итерационных методах ширина ленты не является важным параметром, однако он является критичным для прямых методов решения СЛАУ, эффективность которых резко снижается при увеличении ширины ленты.
Заметим, что на рис. 1 приведена схема условно малого размера конечно-элементной аппроксимации. Реально решались задачи с количеством узлов от пятидесяти тысяч до полутора миллионов.
Для сравнения скорости работы разработанной программы использованы тестовые решения этих же задач с помощью программного комплекса ANSYS-12.1. При решении в среде ANSYS СЛАУ назначен тот же метод сопряженных градиентов с предобуславливанием по Якоби. Комплекс ANSYS, имеющий большую историю развития, известен тем, что большинство используемых им математических алгоритмов эффективно оптимизированы, и поэтому имеют высокую скорость работы. Т.е., сравнение скорости работы выполнялось с одной из лучших на сегодня реализаций алгоритма сопряженных градиентов на персональных компьютерах архитектуры x86-64. Использование одинаковых методов решения СЛАУ позволит достаточно объективно оценить эффективность разработанного программного обеспечения.
Решение задачи комплексом ANSYS выполнялось на высокопроизводительной современной персональной ЭВМ на базе процессора Intel Core I7 930. Данный процессор позволяет одновременно выполнять до восьми параллельных аппаратных потоков.
Решение системы СЛАУ комплексом ANSYS выполнялось параллельно с использованием восьми потоков, что обеспечивает наилучшую утилизацию ресурсов процессора CPU.
Количество итераций метода сопряженных градиентов в секунду использовалось в качестве одного из показателей скорости решения. Данный критерий позволяет оценить реальную скорость итерационного процесса решения СЛАУ. При использовании одинаковых алгоритмов общее число итераций тестируемой программы и ANSYS практически совпадает (некоторое расхождение возможно за счет разных алгоритмов округления результата в FPU и на арифметических процессорах видеокарты).
Программный комплекс ANSYS предоставляет подробную информацию о скорости выполнения различных этапов решения системы посредством файлов PCS.
Измерение скорости выполнения ядер в разработанном продукте выполнялось средствами предоставляемыми библиотекой OpenCL. Скорость выполнения итераций измерялась с помощью стандартных библиотечных функций C++.
Для контроля правильности решения производилось сравнение результатов.
Институт Государственного управления, Главный редактор -
)
Размещено на http://www.allbest.ru/
1
34ТРГСУ412
Размещено на http://www.allbest.ru/
Рис. 2. Сравнение полученных узловых решений для расчётной модели
Результаты ANSYS и разработанной программы при одинаковой заданной точности достаточно близки - совпадают по крайней мере пять значащих цифр.
Измерение скоростных показателей разработанных алгоритмов проводилось на устройствах NVidia GTX 480 и NVidia Tesla C2050. Устройство Tesla C2050 поддерживает работу в режиме коррекции ошибок ECC (Error-Сorrecting Сode), соответственно для данного устройства приводятся два варианта показателей.
Далее приводится график ускорения выполнения итераций относительно ANSYS по времени.
Рис. 3. Ускорение итераций для расчётной модели
Приведенные данные по относительным ускорениям (рис. 3) полностью соответствуют с абсолютными результатами по времени решения задачи на FPU процессоров Х86 в среде ANSYS и на видеокартах (рис. 4).
Далее приведен график сравнения абсолютного времени решения СЛАУ (рис. 4).
Рис. 4. Время решения СЛАУ (с)
Как видно, скорость разработанной программы на видеокарте практически на порядок быстрее, чем на CPU. С увеличением размерности задачи абсолютная разница времени значительно увеличивается, хотя отношение остается примерно постоянным.
Также было произведено сравнение скорости решения видеокарты и вычислительного кластера, находящегося в НИИ Механики и прикладной математики ЮФУ. Время решения СЛАУ, состоящей из трех миллионов уравнений, на видеокарте NVidia GTX480 оказалось в 2 раза меньше, чем время решения с использованием двух стоек T-Edge 8.
Исследование показало, что при использовании быстрых многоядерных систем x86-64 вычисления на видеокарте имеют значительное преимущество по скорости (от 2 до 9 раз). Видеокарты могут быть эффективно использованы в решении задач строительной механики для систем высокой размерности. Использование алгоритма возможно во всех задачах строительной механики, в процессе решения которых многократно решаются СЛАУ. Это задачи нелинейной механики, динамики сооружений, ползучести, влагопереноса и теплопереноса, оптимизации конструкций.
Литература
1. Галлагер Р. Метод конечных элементов. Основы. - Москва: «МИР». - 1984.-С. 428
2. Панасюк Л.Н. Прямые методы решения нестационарных задач теории сооружений. Диссертация на степень доктора технических наук по специальности 05.23.17 - строительная механика. - Ростов-на-Дону,: РГАС. - 1996. - С. 389
3. Shewchuk J.R. An Introduction to the Conjugate Gradient Method Without the Agonizing
Pain. - Carnegie Mellon University Pittsburgh, PA, USA. - 1994.-С. 64
4. Страуструп Б. Язык программирования C++. - Москва: «Бином-Пресс». - 2007. - С. 57
5. Кадомцев М.И, Ляпин А.А., Селезнев М.Г. Исследование динамики заглубленных фундаментов методами граничных и конечных элементов // Строительная механика и расчет сооружений, №3, 2010. С. 61-64.
Размещено на Allbest.ru
...Подобные документы
Основные численные методы моделирования. Понятие метода конечных элементов. Описание основных типов конечных элементов и построение сетки. Реализация модели конструкции в пакете ANSYS, на языке программирования C#. Реализация интерфейса пользователя.
курсовая работа [2,3 M], добавлен 22.01.2016Решение дифференциальных уравнений с частными производными. Метод конечных элементов, история развития, преимущества и недостатки. История разработки программной системы. Задачи, решаемые с помощью программного комплекса, области применения ANSYS.
презентация [1,7 M], добавлен 07.03.2013Ручной расчет трехстержневой фермы в ansys 14.5. Расчет пластины при одноосном растяжении, термическом расширении. Нахождение параметров профильного диска при вращении с постоянной угловой скоростью. Определение перемещений, напряжений в круглой пластине.
курсовая работа [2,5 M], добавлен 09.12.2013Основные положения метода конечных элементов для решения электромагнитных задач. Общая характеристика, назначение и сравнение основных функциональных возможностей двух устройств с постоянными магнитами NdFeB: магнитной пружины и магнитного держателя.
дипломная работа [3,1 M], добавлен 30.08.2010Составление программы и численное решение краевой задачи нестационарной теплопроводности методом конечных разностей. Определение начальных и граничных условий, физические условия однозначности. Реализация программы на языке программирования Pascal.
контрольная работа [1,3 M], добавлен 08.07.2013Анализ многозондовой системы для формирования нанообъектов на подложке методом конечных элементов. Метод конечных элементов. Функционирование многозондовой системы для формирования нанообъектов на подложке. Автоматизированное управление и защита.
дипломная работа [2,1 M], добавлен 03.07.2017Изучение численных методов решения нелинейных уравнений, используемых в прикладных задачах. Нахождение корня уравнения методом простой итерации и методом касательных (на примере уравнения). Отделение корней графически. Программная реализация, алгоритм.
курсовая работа [1,7 M], добавлен 15.06.2013Сравнение центрального и графического процессора компьютера в параллельных расчётах. Пример применения технологии CUDA для неграфических вычислений. Вычисление интеграла и сложение векторов. Технические характеристики ПК, применяемого для вычислений.
курсовая работа [735,9 K], добавлен 12.07.2015Электронная цифровая подпись. Асимметричные алгоритмы шифрования. Сценарий распределения открытых ключей, обмен сертификатами. Выбор программных средств. Математическая модель. Скорости Эль-Гамаля для различных длин модулей. Программная реализация.
дипломная работа [461,7 K], добавлен 22.09.2011Основные модели вычислений. Оценки эффективности параллельных алгоритмов, их коммуникационная трудоемкость. Последовательный алгоритм, каскадная схема и способы ее улучшения. Модифицированная каскадная схема. Передача данных, классификация операций.
презентация [1,3 M], добавлен 10.02.2014Алгоритм логарифмического сдваивания. Средняя степень параллелизма. Характеристики векторных компьютеров. Модель ускорения для параллельной вычислительной системы. Суммирование методом рекурсивного удвоения. Условия выполнения несогласованного алгоритма.
лекция [183,2 K], добавлен 22.10.2014Разработка алгоритма аппроксимации данных методом наименьших квадратов. Средства реализации, среда программирования Delphi. Физическая модель. Алгоритм решения. Графическое представление результатов. Коэффициенты полинома (обратный ход метода Гаусса).
курсовая работа [473,6 K], добавлен 09.02.2015Исследование асимптотической временной сложности решения шахматной задачи; разработка наиболее эффективных алгоритмов и структуры данных; аналитическая и экспериментальная оценка методов сокращения перебора в комбинаторных задачах; программная реализация.
курсовая работа [36,6 K], добавлен 25.06.2013Решение нелинейных уравнений методом простых итераций и аналитическим, простым и модифицированным методом Ньютона. Программы на языке программирования Паскаль и С для вычислений по вариантам в порядке указанных методов. Изменение параметров задачи.
лабораторная работа [191,0 K], добавлен 24.06.2008Пакетный метод как основной способ выполнения коммуникационных операций, его содержание и предъявляемые требования. Оценка трудоемкости операции передачи данных между двумя узлами кластера. Этапы разработки параллельных алгоритмов (распараллеливания).
презентация [318,1 K], добавлен 10.02.2014Рассмотрение теоретических аспектов решения задач средствами пакетов прикладных программ. Разработка алгоритма проведения вычислений, необходимых для расчета израсходованной электроэнергии. Основы организации удобного интерфейса созданной программы.
курсовая работа [1,2 M], добавлен 09.07.2015Классы задач P и NP, их сводимость. Примеры NP-полных и NP-трудных задач. Сущность метода поиска с возвратом. Алгоритмы решения классических задач комбинаторного поиска. Решение задачи о восьми ферзях. Поиск оптимального решения методом ветвей и границ.
презентация [441,5 K], добавлен 19.10.2014О методе конечных элементов. Методика анализа формоизменяющих операций листовой штамповки с использованием программного комплекса ANSYS\LS-DYNA. Анализ операции осесимметричной вытяжки тонколистовой заготовки. Отображение значений напряжений и деформаций.
дипломная работа [4,3 M], добавлен 10.09.2013Создание автоматизированной системы учета заказов и их выполнения в строительной фирме по ремонту квартир. Общие требования к информационной системе. Проектирование структуры базы данных. Построение ER-диаграммы. Реализация информационной системы.
курсовая работа [750,2 K], добавлен 24.03.2014Математическая основа параллельных вычислений. Свойства Parallel Computing Toolbox. Разработка параллельных приложений в Matlab. Примеры программирования параллельных задач. Вычисление определенного интеграла. Последовательное и параллельное перемножение.
курсовая работа [1,1 M], добавлен 15.12.2010