Учебн. пособие/ Томск: Изд-во Том. ун-та, 2008. – 198 с.
В учебном пособии представлены необходимые сведения для работы на многопроцессорной вычислительной системе (кластере) ТГУ: даны основные понятия операционной системы Linux, перечислены правила работы с функциями библиотеки Message Passing Interface, со-
временными компиляторами и технологией OpenMP. Большое внимание уделено практическим вопросам создания параллельных программ для вычисления кратных интегралов, проведения матричных вычислений, решения СЛАУ, численного решения систем ОДУ и уравнений в частных производных. Подробно рассмотрены основные особенности
использования математической библиотеки PETSc для параллельных вычислений. Для быстрого освоения и получения практического опыта параллельного программирования в пособии содержится большое количество примеров, необходимых для пользователя, решающего задачи математического моделирования с помощью вычислительной техники.
Для научных сотрудников, аспирантов, студентов, преподавателей, использующих высокопроизводительные вычислительные ресурсы в научной и учебной работе.
Содержание
Введение
Программное обеспечение параллельного программирования и порядок работы на вычислительном кластере ТГУ СКИФ Cyberia
Программное обеспечение
Порядок работы на кластере СКИФ Cyberia
Операционная система Linux
Интерфейс ОС Linux
Некоторые команды Linux
Работа с каталогами
Работа с файлами
Другие полезные команды
Редактирование файлов
Компилирование последовательных программ (Fortran/C/C++)
Создание параллельной программы с использованием MPI
Запуск параллельной MPI-программы
Работа с системой пакетной обработки задач
Основные команды
Современные компиляторы программ. Компилятор Intel Compiler 9.1
Общие сведения
Совместное использование модулей на Фортране и Си
Основные опции компиляторов
Технологии OpenMP
Основные директивы OpenMP
Runtime-процедуры и переменные окружения
Переменные окружения
Процедуры для контроля/запроса параметров среды
исполнения
Процедуры для синхронизации на базе замков
Примеры
Результаты применения OpenMP на многоядерных системах
Intel Math Keel Library
Параллельное программирование с использованием стандарта MPI
Основные понятия MPI
Начала MPI и программа `Hello World'
Синтаксис базовых функций MPI
Некоторые функции коллективного взаимодействия процессов
Другие возможности MPI
Примеры параллельных MPI-программ на языке FORTRAN
Идентификация процессов
Коммуникационные операции между двумя процессами
Вычисление определенного интеграла
Задания
Вычисление кратных интегралов
Метод Монте-Карло
Параллельная программа расчета двойного интеграла методом Монте-Карло
Метод повторного применения квадратурных формул
Параллельная программа расчета двойного интеграла методом повторного применения квадратурной формулы трапеции
Задания
Матричные вычисления
Способы повышения производительности умножения матриц
Распараллеливание операции умножения матриц
Задания
Системы линейных алгебраических уравнений
Решение СЛАУ методом Гаусса
Программа решения СЛАУ методом Гаусса
Метод циклической редукции
Итерационные методы решения систем линейных уравнений
MPI-программа решения СЛАУ методом Якоби
OpenMP-программа решения СЛАУ методом Якоби
Оценка ускорения параллельной программы решения СЛАУ методом Якоби
Задания
Параллельные алгоритмы решения задачи коши для системы ОДУ
Постановка задачи
Одношаговые методы Рунге–Кутты четвертого порядка
Параллельная реализация метода Рунге–Кутты четвертого порядка
Многошаговые методы Адамса. Схема «предиктор–корректор»
Параллельный алгоритм многошагового метода Адамса. Схема «предиктор–корректор»
Задания
Пакет PETSc для решения уравнений в частных производных
Компиляция и запуск PETSc-программ
Cтруктура PETSc-программ
Векторы
Работа с векторами
Основные векторные операции
Пример
Матрицы
Работа с матрицами
Пример
Методы решений систем линейных уравнений
Пример
Задания
решение задач нестационарной теплопроводности с помощью явных и неявных разностных схем
Явная схема
Одномерная декомпозиция
Двумерная декомпозиция
Неявная схема
Метод сопряженных градиентов
Задания
Литература
В учебном пособии представлены необходимые сведения для работы на многопроцессорной вычислительной системе (кластере) ТГУ: даны основные понятия операционной системы Linux, перечислены правила работы с функциями библиотеки Message Passing Interface, со-
временными компиляторами и технологией OpenMP. Большое внимание уделено практическим вопросам создания параллельных программ для вычисления кратных интегралов, проведения матричных вычислений, решения СЛАУ, численного решения систем ОДУ и уравнений в частных производных. Подробно рассмотрены основные особенности
использования математической библиотеки PETSc для параллельных вычислений. Для быстрого освоения и получения практического опыта параллельного программирования в пособии содержится большое количество примеров, необходимых для пользователя, решающего задачи математического моделирования с помощью вычислительной техники.
Для научных сотрудников, аспирантов, студентов, преподавателей, использующих высокопроизводительные вычислительные ресурсы в научной и учебной работе.
Содержание
Введение
Программное обеспечение параллельного программирования и порядок работы на вычислительном кластере ТГУ СКИФ Cyberia
Программное обеспечение
Порядок работы на кластере СКИФ Cyberia
Операционная система Linux
Интерфейс ОС Linux
Некоторые команды Linux
Работа с каталогами
Работа с файлами
Другие полезные команды
Редактирование файлов
Компилирование последовательных программ (Fortran/C/C++)
Создание параллельной программы с использованием MPI
Запуск параллельной MPI-программы
Работа с системой пакетной обработки задач
Основные команды
Современные компиляторы программ. Компилятор Intel Compiler 9.1
Общие сведения
Совместное использование модулей на Фортране и Си
Основные опции компиляторов
Технологии OpenMP
Основные директивы OpenMP
Runtime-процедуры и переменные окружения
Переменные окружения
Процедуры для контроля/запроса параметров среды
исполнения
Процедуры для синхронизации на базе замков
Примеры
Результаты применения OpenMP на многоядерных системах
Intel Math Keel Library
Параллельное программирование с использованием стандарта MPI
Основные понятия MPI
Начала MPI и программа `Hello World'
Синтаксис базовых функций MPI
Некоторые функции коллективного взаимодействия процессов
Другие возможности MPI
Примеры параллельных MPI-программ на языке FORTRAN
Идентификация процессов
Коммуникационные операции между двумя процессами
Вычисление определенного интеграла
Задания
Вычисление кратных интегралов
Метод Монте-Карло
Параллельная программа расчета двойного интеграла методом Монте-Карло
Метод повторного применения квадратурных формул
Параллельная программа расчета двойного интеграла методом повторного применения квадратурной формулы трапеции
Задания
Матричные вычисления
Способы повышения производительности умножения матриц
Распараллеливание операции умножения матриц
Задания
Системы линейных алгебраических уравнений
Решение СЛАУ методом Гаусса
Программа решения СЛАУ методом Гаусса
Метод циклической редукции
Итерационные методы решения систем линейных уравнений
MPI-программа решения СЛАУ методом Якоби
OpenMP-программа решения СЛАУ методом Якоби
Оценка ускорения параллельной программы решения СЛАУ методом Якоби
Задания
Параллельные алгоритмы решения задачи коши для системы ОДУ
Постановка задачи
Одношаговые методы Рунге–Кутты четвертого порядка
Параллельная реализация метода Рунге–Кутты четвертого порядка
Многошаговые методы Адамса. Схема «предиктор–корректор»
Параллельный алгоритм многошагового метода Адамса. Схема «предиктор–корректор»
Задания
Пакет PETSc для решения уравнений в частных производных
Компиляция и запуск PETSc-программ
Cтруктура PETSc-программ
Векторы
Работа с векторами
Основные векторные операции
Пример
Матрицы
Работа с матрицами
Пример
Методы решений систем линейных уравнений
Пример
Задания
решение задач нестационарной теплопроводности с помощью явных и неявных разностных схем
Явная схема
Одномерная декомпозиция
Двумерная декомпозиция
Неявная схема
Метод сопряженных градиентов
Задания
Литература