Введение в параллельные методы решения задач
Покупка
Тематика:
Математика
Предисл.:
Садовничий В. А.
Год издания: 2013
Кол-во страниц: 328
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-211-06382-2
Артикул: 475917.02.99
Курс, изложенный в учебном пособии, посвящен описанию базовых методов построения параллельных алгоритмов и программ для вычислительных систем с общей и с распределенной памятью. В первых четырех главах дается краткая характеристика архитектур параллельных вычислительных систем, рассматриваются основные области их применения, модели параллельных алгоритмов и программ, обсуждаются вопросы создания масштабируемых алгоритмов и излагаются базовые параллельные методы решения широкого круга задач. В следующих двух главах подробно рассмотрены методы построения масштабируемых параллельных алгоритмов сортировки больших объемов данных и особенности согласованной параллельной генерации последовательностей псевдослучайных чисел. Последние три главы посвящены обсуждению общих проблем применения многопроцессорных систем для решения сеточных задач: декомпозиции графов, динамической балансировки загрузки, визуализации сеточных данных. В курсе обсуждаются методы построения эффективных масштабируемых параллельных алгоритмов, направленных на сокращение времени решения задач описываемых большими объемами данных. В связи с этим, существенное внимание уделяется анализу эффективности базовых параллельных алго ритмов и параллельных методов решения ряда задач обработки данных. Пособие предназначено для широкого круга студентов, аспирантов и специалистов, желающих изучить и практически использовать методы создания алгоритмов для решения вычислительно трудоемких задач на параллельных вычислительных системах. Учебное пособие основано на материалах лекций, читавшихся на протяжении многих лет в Московском физико-техническом институте (государств енном университете). Рекомендовано Советом учебно-методического объединения классических университетов по прикладной математике и информатике. Ключевые слова: параллельные алгоритмы, высокопроизводительные вычислительные системы, масштабируемые параллельные методы и программы, декомпозиция графов, визуализация сеточных данных большого объема, параллельная сортировка, последовательности псевдослучайных чисел, суперкомпьютерное образование.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 01.03.02: Прикладная математика и информатика
- 02.03.02: Фундаментальная информатика и информационные технологии
- 03.03.02: Прикладная математика и информатика
- ВО - Магистратура
- 01.04.02: Прикладная математика и информатика
- 02.04.02: Фундаментальная информатика и информационные технологии
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Серия Суперкомпьютерное Образование
Координационный совет Системы научно-образовательных центров суперкомпьютерных технологий Председатель Координационного совета В. А. Садовничий, ректор МГУ имени М. В. Ломоносова, академик Заместители председателя совета Е. И. Моисеев, декан факультета вычислительной математики и кибернетики МГУ имени М. В. Ломоносова, академик А. В. Тихонравов, директор Научно-исследовательского вычислительного центра МГУ имени М. В. Ломоносова, профессор Члены совета В. Н. Васильев, ректор Санкт-Пе тер бургского национального исследовательского госу дар ственного университета инфор ма ционных технологий, механики и оптики, чл.-корр. РАН, профессор; В. Г. Захаревич, ректор Южного федерального университета, профессор; Н. Н. Кудрявцев, ректор Московского физико-технического института, чл.-корр. РАН, профессор; Г. В. Майер, ректор национального исследовательско го Томско го государственного университета, профессор; А. А. Фаткулин, проректор по науке и инновациям Дальневосточного федерального университета, профессор; Е. В. Чупрунов, ректор националь ного исследовательского Ниже городского го су дарственного университета, про фессор; А. Л. Шестаков, ректор национального исследовательского Южно- Уральского государственного университета, профессор; В. Н. Чубариков, декан механико-математического факультета МГУ имени М. В. Ломоносова, профессор; М. И. Панасюк, директор Научно-ис сле дова тельского института ядерной физики МГУ имени М. В. Ломоно сова, профессор; Вл. В. Воеводин, заме ститель директора Научно-исследо ва тель ского вычислительного центра МГУ имени М. В. Ломоносова, исполнительный директор НОЦ «СКТ-Центр», член-корреспондент РАН.
Издательство Московского университета 2013 Московский физико-технический институт (государственный университет) Введение в параллельные методы решения задач М.В.Якобовский Допущено УМО по классическому университетскому образованию в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлениям ВПО 010400 «Прикладная математика и информатика» и 010300 «Фундаментальная информатика и информационные технологии»
© Якобовский М. В., 2012 © Издательство Московского университета, 2013 ISBN 978-5-211-06382-2 Якобовский М. В. Введение в параллельные методы решения задач: Учебное пособие / Предисл.: В. А. Садовничий. – М.: Издательство Московского университета, 2013. – 328 с., илл. – (Серия «Суперкомпьютерное образование») ISBN 978-5-211-06382-2 Я46 Курс, изложенный в учебном пособии, посвящен описанию базовых методов построения параллельных алгоритмов и программ для вычислительных систем с общей и с распределенной памятью. В первых четырех главах дается краткая характеристика архитектур параллельных вычислительных систем, рассматриваются основные области их применения, модели параллельных алгоритмов и программ, обсуждаются вопросы создания масштабируемых алгоритмов и излагаются базовые параллельные методы решения широкого круга задач. В следующих двух главах подробно рассмотрены методы построения масштабируемых параллельных алгоритмов сортировки больших объемов данных и особенности согласованной параллельной генерации последовательностей псевдослучайных чисел. Последние три главы посвящены обсуждению общих проблем применения многопроцессорных систем для решения сеточных задач: декомпозиции графов, динамической балансировки загрузки, визуализации сеточных данных. В курсе обсуждаются методы построения эффективных масштабируемых параллельных алгоритмов, направленных на сокращение времени решения задач описываемых большими объемами данных. В связи с этим, существенное внимание уделяется анализу эффективности базовых параллельных алго ритмов и параллельных методов решения ряда задач обработки данных. Пособие предназначено для широкого круга студентов, аспирантов и специалистов, желающих изучить и практически использовать методы создания алгоритмов для решения вычислительно трудоемких задач на параллельных вычислительных системах. Учебное пособие основано на материалах лекций, читавшихся на протяжении многих лет в Московском физико-техническом институте (государст венном университете). Рекомендовано Советом учебно-методического объединения классических университетов по прикладной математике и информатике. Ключевые слова: параллельные алгоритмы, высокопроизводительные вычислительные системы, масштабируемые параллельные методы и программы, декомпозиция графов, визуализация сеточных данных большого объема, параллельная сортировка, последовательности псевдослучайных чисел, суперкомпьютерное образование. УДК 007 (075) ББК 32.973.2 УДК 007 (075) ББК 32.973.2 Я46
Уважаемый читатель! Вы держите в руках одну из книг серии «Суперкомпьютерное образование», выпущенную в рамках реализации проекта комиссии Президента РФ по модернизации и технологическому развитию экономики России «Со здание системы подготовки высококвалифицированных кадров в области суперкомпьютерных технологий и специализированного программного обеспечения». Инициатором издания выступил Суперкомпью терный консорциум университетов России. Серия включает более 20 учебников и учебных пособий, подготовленных ведущими отечественными специалистами в области супер компьютерных технологий. В книгах представлен ценный опыт преподавания супер компьютерных технологий в таких авторитетных вузах России, как МГУ, МФТИ, ННГУ, ТГУ, ЮУрГУ, СПбГУ ИТМО и многих других. При подготовке изданий были учтены рекомендации, сформулированные в Своде знаний и умений в области суперкомпьютерных технологий, подготовленном группой экспертов Суперкомпьютерного консорциума, а также международный опыт. Современный уровень развития вычислительной техники и методов математического моделирования дает уникальную возможность для перехода промышленного производства и научных исследований на качественно новый этап. Эффективность такого перехода напрямую зависит от наличия достаточного числа высококвалифицированных специалистов. Данная серия книг предназначена для широкого круга студентов, аспирантов и специалистов, желающих изучить и практически использовать параллельные компьютерные системы для решения трудоемких вычислительных задач.
Издание серии «Суперкомпьютерное образование» наглядно демон ст рирует тот вклад, который внесли участники Суперкомпьютерного консорциума университетов России в создание национальной системы под готовки высококвалифицированных кадров в об ласти суперкомпью терных технологий, а также их четкое понимание ответственности за подготовку высококвалифицированных специалистов и формирование проч ного научного фундамента, столь необходимого для эффективного использования суперкомпьютерных технологий на практике. Ректор Московского университета, Президент Суперкомпьютерного консорциума университетов России, академик РАН В. А. Садовничий Предисловие 6
Оглавление Глава 1. Введение ...................................................................................... 11 1.1. Современный компьютер — инструмент параллельной обработки данных .......................................................................11 1.2. Области применения многопроцессорных систем ...................16 1.3. Рассматриваемые параллельные архитектуры ..........................19 1.4. Пример параллельного алгоритма .............................................20 1.4.1. Последовательный рекурсивный алгоритм .....................21 1.4.2. Параллельный рекурсивный алгоритм ............................21 1.4.3. Последовательное вычисление членов ряда ....................22 1.4.4. Последовательный матричный алгоритм ........................23 1.4.5. Параллельный матричный алгоритм ...............................24 Глава 2. Основные понятия ........................................................................ 28 2.1. Параллельная программа как ансамбль взаимодействующих последовательных процессов ..................28 2.2. Внутренний параллелизм ...........................................................29 2.2.1. Сложение многоразрядных чисел ....................................30 2.3. Ускорение и эффективность параллельных алгоритмов ..........38 2.4. Ускорение и эффективность относительно наилучшего последовательного алгоритма ....................................................41 2.4.1. Неравноправность условий выполнения — первая причина сверхлинейного ускорения ....................43 2.4.2. Алгоритмическая причина сверхлинейного ускорения ..........................................................................44 2.4.3. Формальное преобразование параллельного алгоритма в «наилучший» последовательный .................47 2.5. Априорная оценка эффективности параллельного алгоритма ....................................................................................49 Глава 3. Модели параллельных программ ................................................... 53 3.1. Вычислительные системы с распределенной памятью .............54 3.2. Вычислительные системы с общей памятью .............................56 3.3. Гибридные архитектуры .............................................................58 3.4. Модель выполнения параллельной программы на распределенной памяти .........................................................59 3.5. Модель выполнения параллельной программы на общей памяти .........................................................................60 3.6. Средства взаимодействия последовательных процессов ..........62 3.6.1. Свойства канала передачи данных ...................................62 3.6.2. Методы передачи данных .................................................63
Оглавление 8 3.6.3. Семафор ............................................................................72 3.6.4. Барьерная синхронизация ................................................75 Глава 4. Базовые параллельные методы ..................................................... 77 4.1. Метод сдваивания .......................................................................78 4.1.1. Быстрый алгоритм выбора частичных сумм ....................84 4.1.2. Барьерная синхронизация на основе синхронных обменов ........................................................86 4.1.3. Стена Фокса ......................................................................88 4.2. Метод геометрического параллелизма ......................................88 4.3. Метод конвейерного параллелизма ...........................................98 4.4. Метод коллективного решения ................................................ 107 4.5. Причины потери эффективности ............................................ 114 Глава 5. Сортировка данных .................................................................... 117 5.1. Постановка задачи .................................................................... 117 5.2. Последовательные алгоритмы сортировки ............................. 120 5.2.1. Быстрая сортировка (runtime qsort, wsort) ....................... 123 5.2.2. Простое двухпутевое слияние (dsort) и слияние списков (lsort) ................................................. 124 5.2.3. Пирамидальная сортировка (hsort) ................................. 126 5.3 Свойства последовательных алгоритмов ................................. 128 5.3.1. Сортировка методом простого двухпутевого слияния .... 128 5.3.2. Пирамидальная сортировка ........................................... 135 5.3.3. Наилучший последовательный алгоритм сортировки dhsort ............................................................ 139 5.4. Масштабируемые алгоритмы сортировки ............................... 141 5.4.1. Сети сортировки ............................................................. 141 5.4.2. Сеть четно-нечетной сортировки .................................. 144 5.4.3. Сеть обменной сортировки со слиянием Бэтчера ......... 145 5.4.4. Сортировка больших массивов ...................................... 150 5.4.5. Сравнение алгоритмов сортировки ............................... 153 5.5. Результаты численных экспериментов .................................... 157 Глава 6. Генерация псевдослучайных чисел .............................................. 161 6.1. Требования к генераторам псевдослучайных чисел для МВС .................................................................................... 162 6.2. Линейно-конгруэнтные генераторы ........................................ 168 6.3. M-последовательности ............................................................. 170 6.4. Проверка примитивности полиномов ..................................... 176 6.5. Тестирование генераторов ....................................................... 177
Оглавление Глава 7. Декомпозиция сеточных графов .................................................. 180 7.1. Пример двумерной сетки ......................................................... 180 7.2. Критерии декомпозиции графов ............................................. 182 7.2.1. Критерий 1: классический критерий декомпозиции графа ....................................................... 183 7.2.2. Критерий 2: выделение обособленных доменов ........... 184 7.2.3. Критерий 3: минимизация максимальной степени домена ................................................................ 185 7.2.4. Критерий 4: обеспечение связности графов каждого из доменов ......................................................... 186 7.3. Декомпозиция на основе исходной нумерации узлов ............ 189 7.4. Рекурсивная бисекция .............................................................. 191 7.5. Декомпозиция регулярных графов .......................................... 192 7.6. Методы декомпозиции произвольных графов ........................ 196 7.6.1. Иерархическая декомпозиция........................................ 196 7.6.2. Спектральная бисекция .................................................. 205 7.6.3. Алгоритм инкрементного роста ..................................... 210 7.7. Декомпозиция больших сеток .................................................. 217 7.7.1. Координатная рекурсивная бисекция ........................... 218 7.7.2. Двухуровневая стратегия обработки и хранения сеток ............................................................. 220 Глава 8. Динамическая балансировка загрузки процессоров ...................... 223 8.1. Стратегии балансировки загрузки ........................................... 223 8.2. Метод диффузной балансировки ............................................. 224 8.3. Моделирование горения метанового факела .......................... 229 8.3.1. Постановка задачи динамической балансировки ......... 235 8.3.2. Алгоритм серверного параллелизма............................... 236 8.4. Адаптивное интегрирование .................................................... 248 8.4.1. Последовательные алгоритмы ........................................ 249 8.4.2. Параллельные алгоритмы ............................................... 256 Глава 9. Визуализация сеточных данных .................................................. 278 9.1. Клиент-серверная технология ................................................. 280 9.2. Online или Offline-визуализация: плюсы и минусы ................ 281 9.2.1. Online-визуализация Offline-визуализация ................... 281 9.3. Этапы визуализации ................................................................. 285 9.4. Визуализация изоповерхностей ............................................... 290 9.4.1. Аппроксимация изоповерхности ................................... 293 9.4.2. Виды данных, описывающих триангуляцию ................. 296 9.4.3. Метод редукции .............................................................. 299
Оглавление 9.4.4. Заполняющие пространство триангуляции ................... 302 9.4.5. Параллельные алгоритмы построения аппроксимирующих триангуляций ................................ 303 9.4.6. Многоуровневое огрубление больших сеток ................. 304 9.4.7. Примеры визуализации .................................................. 306 9.5. Ввод-вывод сеточных данных .................................................. 308 9.5.1. Соотношение времени чтения данных и времени их обработки .................................................................... 308 9.5.2. Распределенный ввод-вывод .......................................... 309 9.5.3. Огрубление и сжатие скалярных сеточных функций .... 310 Список ссылок ......................................................................................... 317 Предметный указатель ............................................................................. 323