Учебн. пособие/ Томск: Изд-во Том. ун-та, 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 Kernel Library
Параллельное программирование с использованием стандарта MPIОсновные понятия MPI
Начала MPI и программа `Hello World'
Синтаксис базовых функций MPI
Некоторые функции коллективного взаимодействия процессов
Другие возможности MPI
Примеры параллельных MPI-программ на языке FORTRAN
Идентификация процессов
Коммуникационные операции между двумя процессами
Вычисление определенного интеграла
Задания
Вычисление кратных интеграловМетод Монте-Карло
Параллельная программа расчета двойного интеграла методом Монте-Карло
Метод повторного применения квадратурных формул
Параллельная программа расчета двойного интеграла методом повторного применения квадратурной формулы трапеции
Задания
Матричные вычисленияСпособы повышения производительности умножения матриц
Распараллеливание операции умножения матриц
Задания
Системы линейных алгебраических уравненийРешение СЛАУ методом Гаусса
Программа решения СЛАУ методом Гаусса
Метод циклической редукции
Итерационные методы решения систем линейных уравнений
MPI-программа решения СЛАУ методом Якоби
OpenMP-программа решения СЛАУ методом Якоби
Оценка ускорения параллельной программы решения СЛАУ методом Якоби
Задания
Параллельные алгоритмы решения задачи коши для системы ОДУПостановка задачи
Одношаговые методы Рунге–Кутты четвертого порядка
Параллельная реализация метода Рунге–Кутты четвертого порядка
Многошаговые методы Адамса. Схема «предиктор–корректор»
Параллельный алгоритм многошагового метода Адамса. Схема «предиктор–корректор»
Задания
Пакет PETSc для решения уравнений в частных производныхКомпиляция и запуск PETSc-программ
Структура PETSc-программ
Векторы
Работа с векторами
Основные векторные операции
Пример
Матрицы
Работа с матрицами
Пример
Методы решений систем линейных уравнений
Пример
Задания
Решение задач нестационарной теплопроводности с помощью явных и неявных разностных схемЯвная схема
Одномерная декомпозиция
Двумерная декомпозиция
Неявная схема
Метод сопряженных градиентов
Задания
Литература