URSS.ru - Издательская группа URSS. Научная и учебная литература
Об издательстве Интернет-магазин Контакты Оптовикам и библиотекам Вакансии Пишите нам
КНИГИ НА РУССКОМ ЯЗЫКЕ


 
Вернуться в: Каталог  
Обложка Вабищевич П.Н. Вычислительные технологии: Профессиональный уровень
Id: 222016
 
449 руб.

Вычислительные технологии: Профессиональный уровень
Вычислительные технологии: Профессиональный уровень

URSS. 2017. 352 с. Мягкая обложка. ISBN 978-5-9710-4078-1.

 Аннотация

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

Особенности многоядерных компьютеров (многопроцессорных систем с общей памятью) учитываются в технологии программирования с использованием OpenMP. Параллельное программирование для кластеров и суперкомпьютеров (системы с распределенной памятью) проводится на основе MPI (Message Passing Interface). Для численного решения линейных и нелинейных систем уравнений, систем обыкновенных дифференциальных уравнений, к которым мы приходим после дискретизации краевых задач для уравнений с частными производными, предназначена библиотека PETSc (Portable Extensible Toolkit for Scientific Computation). Все основные компоненты современных инженерных и научных вычислений (геометрическая и сеточная модели, конечно-элементная аппроксимация, решение дискретных задач и визуализация расчетных данных) представлены в пакете FEniCS.

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


 Оглавление

Предисловие
Введение
 Архитектура вычислительных систем
 1.1 История развития вычислительной техники
 1.2 Архитектура параллельных систем
 1.3 Современные суперкомпьютеры
 1.4 Многоядерные вычислительные системы
 1.5 Процессы и потоки в многозадачных операционных системах
 1.6 Особенности программирования
 Программирование многопоточных приложений
 2.1 Библиотека POSIX threads
 2.2 Создание и уничтожение потоков
 2.3 Жизненный цикл потока
 2.4 Многопоточная реализация операции сложения матриц
 2.5 Синхронизация работы потоков
 2.6 Правила видимости памяти
 2.7 Заключение
 Технология OpenMP
 3.1 Модель OpenMP
 3.2 Общие директивы и опции OpenMP
 3.3 Директивы разделения работы
 3.4 Опции директив разделения работы
 3.5 Директивы синхронизации
 3.6 Дополнительные опции и директивы OpenMP
 3.7 Решение задачи Дирихле для уравнения Пуассона
 Программирование в рамках стандарта MPI
 4.1 Основы программирования в рамках стандарта MPI
 4.2 Операции передачи сообщений
 4.3 Функции коллективного взаимодействия
 4.4 Решение задачи Дирихле для уравнения Пуассона
 Пакет визуализации научных данных ParaView
 5.1 Краткое описание
 5.2 Форматы данных
 5.3 Подготовка расчетных данных
 5.4 Основы работы с ParaView
 5.5 Параллельная визуализация в ParaView
 Инструментарий для разработки параллельных программ
 6.1 Установка
 6.2 Работа с проектом
 6.3 Отладка параллельной программы
 6.4 Анализ производительности
 Прикладное программное обеспечение
 7.1 Численное моделирование
 7.2 Программный инструментарий
 7.3 Структура программного комплекса
 7.4 Универсальное прикладное программное обеспечение
 7.5 Проблемно-ориентированные программные комплексы
 Построение геометрии и генерация сеток
 8.1 Общие сведения
 8.2 Gmsh
 8.3 NETGEN
 Вычислительная библиотека PETSc
 9.1 Общая информация
 9.2 Решение линейной задачи
 9.3 Решение нелинейных задач
 9.4 Решение нестационарной задачи
10  Вычислительный пакет FEniCS
 10.1 Общая информация
 10.2 Модельная краевая задача
 10.3 Конечно-элементная аппроксимация
 10.4 Программа
 10.5 Обработка результатов
 10.6 Нелинейная задача
 10.7 Нестационарная задача
11  Численное исследование прикладных проблем
 11.1 Теплоперенос в грунте при наличии фазовых переходов
 11.2 Течение несжимаемой жидкости
 11.3 Задача стационарной термоупругости
 11.4 Теплоэлектрическая модель
Список литературы

 Предисловие

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

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

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

Программное обеспечение научных и инженерных исследований в значительной степени базируется на сторонних разработках. На основе модульного анализа прикладной математической модели выделяются базовые вычислительные задачи, организуется алгоритмический интерфейс между ними. Вычислительная реализация выделенных отдельных подзадач проводится с использованием стандартизованных вычислительных компонент. Компонентный подход может использоваться также при подготовке расчетной задачи (препроцессинге), при обработке и визуализации расчетных данных (постпроцессинг). Компонентное программирование тем более уместно при разработке самого программного продукта, например, с использованием компонент пользовательского графического интерфейса – компоненты GUI (Graphical User Interface).

Разработка прикладного программного обеспечения проводиться на основе определенных стандартов и соглашений. Это касается, в частности, языка программирования. Достаточно долго программирование при проведении научных и инженерных вычислениях проводилось с использованием языка Fortran. Его основное преимущество состоит в наличии большого количество написанных на нñм программ и библиотек, которые чаще всего доступны в исходных кодах и хорошо документированы. В настоящее время ситуация меняется в пользу других языков программирования, прежде всего C и C++. Новые вычислительные библиотеки, компоненты пишутся обычно на C/C++, имеющееся хорошо зарекомендовавшееся прикладное программное обеспечение переписывается с языка Fortran.

В исследовательских работах мы традиционно ориентируемся на использование свободного программного обеспечение (СПО). Особенно уместно использование СПО в учебном процессе. Естественная, с нашей точки зрения, бизнес-модель с оплатой учебному заведению услуг по обучению пользователей проприетарного программного обеспечения не очень широко распространена и практически не приветствуется основными игроками на рынке платного программного продукта. Второе требование касается кроссплатформенности, когда программное обеспечение должно работать более чем на одной аппаратной платформе и/или операционной системе. Кроссплатформенными должны быть используемые языки программирования (компиляторы для языка под различные платформы), библиотеки (компоненты) и прикладное программное обеспечение.

Еще один важный момент связан с многопроцессорностью вычислительной техники. Разработка прикладного программного продукта для многопроцессорных систем с общей памятью (многоядерные компьютеры) базируется на использовании OpenMP. Для систем с распределенной памятью (кластеры) де-юре стандартом программирования стал MPI. Основные особенности прикладных задач, которые описываются уравнениями с частными производными и решаются на параллельных компьютерах, учитываются библиотекой PETSc.

Приведенные соображения определили структуру книги, ее общую направленность на создание современного прикладного программного продукта. В первой ее части (Вычислительные технологии. Базовый уровень. Под ред. Вабищевича П.Н.) дано описание основных элементов современных вычислительных технологий с использованием алгоритмических языков C/C++, компиляторов и библиотек GNU (GNU's Not UNIX), свободное программное обеспечение для решения задач вычислительной математики и визуализации расчетов. В данной книге обсуждаются современные вычислительные технологии, ориентированные на приближенного решения прикладных проблем, математические модели которых базируются на системах уравнений с частными производными. Задачи решаются в сложных расчетных областях на основе конечно-элементной аппроксимации с использованием параллельных вычислительных систем. Прикладного программное обеспечение строиться на основе свободных библиотек научных и инженерных вычислений, среди которых особое внимание уделяется библиотеке FEniCS.

Книга подготовлена сотрудниками научно исследовательской кафедры вычислительных технологий Северо-Восточного федерального университета, г. Якутск. Надеемся, что она будет полезна студентам и специалистам, которые решают свои инженерные и научные проблемы с использованием численных методов. Мы с благодарностью примем любые конструктивные замечания по книге.

П.Н.Вабищевич
Москва, Якутск ноябрь, 2016 г.

 Введение

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

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

Для создания параллельных приложений широко используется OpenMP (Open Multi-Processing). Этот стандарт включает совокупность директив компилятора, библиотечных процедур и переменных окружения, которые предназначены для программирования многопоточных приложений на многопроцессорных системах с общей памятью. В OpenMP главный (master) поток создает набор подчиненных (slave) потоков, которые выполняются параллельно на машине с несколькими процессорами в рамках выделенного фрагмента кода. Языковые конструкции в OpenMP определены как соответствующие директивы компилятора.

При разработке программ для параллельных вычислительных систем с распределенной памятью, для которых затраты на передачу данных между процессами велики, используется стандарт обмена данными MPI (Message Passing Interface). Программа MPI представляется собой набор независимых процессов, которые взаимодействуют между собой посредством отправки и получения сообщений. Работоспособность технологии поддерживается использованием сети для передачи сообщений между любыми двумя процессами.

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

Для разработки параллельных приложений в качестве интегрированной среды разработки (IDE) используется Eclipse for Parallel Application Developers. Она поддерживает широкий спектр параллельных архитектур и вычислительных систем и включает, в частности, параллельный отладчик. С помощью этой IDE разрабатываются приложения на основе OpenMP и MPI.

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

Для построения геометрических моделей можно использовать различные программные средства – CAD (Computer-Aided Design) системы. При численном исследовании необходимо построить расчетную сетку. Для подготовки геометрических моделей и расчетных сеток используется Netgen и Gmsh. Кратко описываются возможности этих программных продуктов и приемы работы с ними.

Для инженерных и научных вычислений широко используется библиотека PETSc (Portable Extensible Toolkit for Scientific Computation). Этот программный инструментарий поддерживает современные парадигмы параллельного программирования на основе стандарта MPI. Основное внимание в PETSc уделяется численному решению линейных и нелинейных систем уравнений, которые возникают при приближенном решении краевых задач для уравнений с частными производными.

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

Возможности имеющегося свободного программного продукта при инженерных и научных вычислениях иллюстрируются примерами численного решения тестовых задач. Рассмотрена задача со свободной границей (плавления/затвердевания), изучается течение несжимаемой жидкости в каверне с движущейся крышкой. В качестве примеров сопряженных (мультифизичных) проблем выступает задача джоулевого нагрева при протекании тока по проводнику, также моделируется деформации пористой среды при фильтрация жидкости. Эти проблемы исследуются по полному циклу численного исследования: постановка краевой задачи, построение расчетной сетки, аппроксимация и приближенное решение дискретных задач, анализ результатов расчетов.


 О редакторе

Вабищевич Петр Николаевич
Доктор физико-математических наук, профессор. Специалист в области вычислительной математики и математического моделирования. Работает в Институте проблем безопасного развития атомной энергетики РАН (г. Москва) и Северо-Восточном федеральном университете им. М. К. Аммосова (г. Якутск). П. Н. Вабищевичем разработаны новые эффективные вычислительные алгоритмы для численного решения многомерных задач математической физики, внесен большой вклад в разработку методов численного решения обратных задач математической физики. Созданные им методы применяются при решении прикладных проблем механики сплошной среды, тепло- и массопереноса. П. Н. Вабищевич — автор более 300 научных работ, в том числе нескольких монографий и учебных пособий, обладатель более 10 патентов РФ.
 
© URSS 2016.

Информация о Продавце