Основы параллельного программирования с использованием MPI: учебное пособие [Р. К. Газизов] (doc) читать постранично

Книга в формате doc! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

УДК 004.43(07)
ББК 32.973.26-018.2(я7)
Г13

Газизов Р.К., Лукащук С.Ю., Тулебаев С.Д.
Г 13 Основы параллельного программирования с использованием MPI: Учеб. пособие / Уфимск. гос. авиац. техн. ун-т. – Уфа: УГАТУ, 2004. – 90 с.
ISBN 5-86911-477-2

В пособии излагаются основополагающие моменты разработки параллельных программ для кластерных вычислительных систем с использованием интерфейса передачи сообщений MPI. Рассматриваются вопросы оценки эффективности параллельных программ.
Пособие предназначено для студентов и аспирантов инженерных специальностей технических вузов, а также инженерных и научных работников, интересующихся параллельным программированием для кластерных вычислительных систем.
Табл. 1. Ил. 7. Библиогр. 4 назв.

Научный редактор канд. техн. наук, доц. Р.А. Хисамутдинов

Рецензенты: заведующий отделом вычислительной математики
Института математики УНЦ РАН д-р физ.- мат. наук,
проф. М.Д. Рамазанов,
ст. науч. сотр. Института механики УНЦ РАН
канд. физ.-мат. наук К.И. Михайленко

ББК 32.973.26-018.2(я7)
Публикуется при поддержке Федеральной целевой программы “Интеграция науки и высшего образования России на 2002–2006 годы”, контракт У0011/735

ISBN 5-86911-477-2  Уфимский государственный
авиационный технический
университет, 2004
 Р.К. Газизов, С.Ю. Лукащук,
С.Д. Тулебаев, 2004
Содержание

Введение ………………………………………………………..
4
1. ВВЕДЕНИЕ В ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ …………………………………………………………

7
1.1. Простейшая параллельная программа ……………….
7
1.2. Оценка эффективности параллельной программы ….
12
2. ОСНОВЫ ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ
СРЕДСТВАМИ MPI ………………………………………..

19
2.1. Базовые функции MPI …………………………………
19
2.2. Понятие клинча и совмещение приема и передачи
данных ………………………………………………….

28
2.3. Функции коллективного взаимодействия ……………
31
2.3.1. Функции коллективного обмена данными …………
32
2.3.2. Синхронизация процессов ……………………….
48
2.3.3. Функции поддержки распределенных операций .
48
2.4. Определение времени выполнения параллельной
программы ……………………………………………..

52
3. ПРИМЕРЫ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ …………….
55
3.1. Hello MPI ……………………………………………….
55
3.2. Вычисление интеграла …………………………………
57
3.3. Нахождение минимума …..…………………………….
61
3.4. Параллельная сортировка ……………………………...
66
3.5. Решение систем линейных уравнений ………………..
71
Список литературы …………………………………………….
79
ПРИЛОЖЕНИЕ 1. Работа с вычислительным кластером Башкирского регионального центра высокопроизводительных вычислений ………………………………………………..


80
ПРИЛОЖЕНИЕ 2. Некоторые базовые команды операционной системы Linux …………………......……………………….

85











Введение

В последние годы многопроцессорные вычислительные системы (МВС) получают все более широкое распространение в самых различных областях человеческой деятельности. Если пятнадцать-двадцать лет назад такие системы использовались преимущественно в области компьютерного моделирования для изучения сложных физических процессов и для создания высокотехнологичной техники (как правило, военного назначения), то в последние годы наблюдается активное внедрение МВС в производственную сферу, медицину, образование и даже средний бизнес. Причины этого достаточно очевидны: прогресс в области электронной техники и информационных технологий привел к существенному снижению стоимости таких систем. Естественно, что речь в данном случае не идет о так называемых “суперкомпьютерах” – вычислительных системах, обладающих на данный момент максимальными производительностью, оперативной и дисковой памятью. Количество процессоров в таких системах измеряется тысячами, а стоимость достигает нескольких миллионов долларов. Располагаются суперкомпьютеры в ведущих мировых научно-исследовательских центрах, и их основное назначение остается неизменным – компьютерное моделирование сложных объектов и процессов. Однако МВС с относительно небольшим количеством процессоров (от четырех до нескольких десятков) можно встретить все чаще. Как правило, это либо рабочие станции, либо кластерные вычислительные системы. Последние представляют собой объединенные единой коммуникационной средой с относительно небольшой пропускной способностью (100-1000 Мбит в секунду) однотипные персональные компьютеры или рабочие станции, физически собранные в одну или несколько стоек, и работающие как единая вычислительная система. Назначение таких кластеров может быть самым разнообразным: обработка больших потоков информации в режиме реального времени (крупные корпоративные базы данных); проведение расчетов, требующих производительности и объемов памяти, недостигнутых еще на данный момент персональными компьютерами;