Новости: В издательстве БХВ-Петербург вышла книга "Параллельные вычисления"
В.В.Воеводин, Вл.В.Воеводин.
|
В октябре 2002 года в издательстве
БХВ-Петербург
вышла в свет книга
В.В.Воеводин,
Вл.В.Воеводин
"Параллельные вычисления"-СПб.:
БХВ-Петербург, 2002.-608 с.: ил. (тираж - 3000 экземпляров).
ISBN 5-94157-160-7
Книга российских ученых посвящена обсуждению ключевых проблем современных параллельных вычислений. С единых позиций рассматриваются архитектуры параллельных вычислительных систем, технологии параллельного программирования, численные методы решения задач. Вместе со строгим описанием основных положений теории информационной структуры программ и алгоритмов, книга содержит богатый справочный материал, необходимый для организации эффективного решения больших задач на компьютерах с параллельной архитектурой.
В области параллельных вычислений данная монография является первой книгой, рекомендованной Министерством образования РФ в качестве учебного пособия для обучения по направлению "Прикладная математика и информатика".
Книга уже поступила в продажу и доступна во всех центральных книжных магазинах, а также в Интернет-магазинах, например Озон или Books.Ru.
Заказать книгу можно в отделе "книга-почтой" издательства "БХВ". Контактное лицо - Пименова Наталья, e-mail: trade@bhv.spb.su
Все вопросы, связанные с поставкой книги в Ваш город, магазин, университет, библиотеку и т.д. можно решить с коммерческим директором издательства "БХВ" Коноваловым Андреем Михайловичем, тел. (812) 541-8551, 541-8461, root@bhv.spb.su.
Книга издана при поддержке компании Hewlett-Packard.
Оглавление:
Предисловие. Много ли надо знать о параллельных вычислениях?
Часть 1. Параллельные вычислительные системы
- Глава 1. Что скрывают обыкновенные компьютеры
- 1.1. Немного об устройстве компьютера
Представление информации. Общее устройство компьютера. Операции и операнды. Команды. Управление. Арифметико-логическое устройство. Память. Устройство ввода-вывода. Центральный процессор. Вопросы и задания. - 1.2. Операции с числами
Двоичное представление чисел. Разряды. Фиксированная и плавающая запятая. Округление чисел. Ошибка округления. Сравнение представлений чисел. Вопросы и задания. - 1.3. Иерархия памяти
Различные виды памяти. Время доступа. Виртуальная память. Влияние на время решения задачи. Трудности работы с медленной памятью. Вопросы и задания. - 1.4. Языки программирования и программы
Языки низкого и высокого уровня. Проблемно ориентированные языки. Контроль эффективности программ. Компьютерная зависимость. Портабельность программ. Компиляторы и эффективность программ. Необходимость привлечения дополнительной информации. Вопросы и задания. - 1.5. Узкие места
Иллюстративная модель компьютера. Пиковая и реальная производительность. Взаимодействие отдельных узлов компьютера. Эффективность. Узкие места. Вопросы и задания.
- 1.1. Немного об устройстве компьютера
- Глава 2. Как повышают производительность компьютеров
- 2.1. Усложнение и наращивание аппаратных средств
Уменьшение размеров. Скалярная, конвейерная и параллельная обработка. Иерархия памяти. Опережающий просмотр команд. Локальность вычислений и использования данных. Примеры. Вопросы и задания. - 2.2. Повышение интеллектуальности управления компьютером
Закон Мура. Спецпроцессоры. Суперскалярные и VLIW архитектуры. Коммутационные схемы. Топологии связей процессоров. SMP компьютеры. Архитектуры NUMA и ccNUMA. Развитие программного обеспечения. Примеры. Вопросы и задания. - 2.3. Система функциональных устройств
Простые и конвейерные устройства. Стоимость работы. Загруженность. Пиковая и реальная производительность. Эффективность. Различные соотношения. Законы Амдала и Густавсона-Барсиса. Взаимосвязь законов. Вопросы и задания.
- 2.1. Усложнение и наращивание аппаратных средств
- Глава 3. Параллельные вычислительные системы
- 3.1. Классификация параллельных компьютеров и систем
Классификация Флинна, Хокни, Фенга, Хендлера, Шнайдера, Скилликорна. Взаимосвязь классификаций. Архитектура компьютеров и структура задач. Вопросы и задания. - 3.2. Векторно-конвейерные компьютеры
Детальное рассмотрение компьютера Cray C90. Структура оперативной памяти. Регистровая структура. Функциональные устройства. Пиковая и реальная производительность. Вопросы и задания. - 3.3. Параллельные компьютеры с общей памятью
Детальное рассмотрение компьютера HP Superdome. Ячейка компьютера. Локальные и удаленные ячейки. Процессор PA-8700. Работа с памятью. Вопросы и задания. - 3.4. Вычислительные системы с распределенной памятью
Детальное рассмотрение компьютеров Cray T3D/T3E. Управляющие и вычислительные узлы. Процессорный элемент. Сетевой интерфейс. Сетевой маршрутизатор. Коммуникационная сеть. Память. Кластерные проекты. Вопросы и задания. - 3.5. Концепция GRID и метакомпьютинг
Метакомпьютер как огромная распределенная система. Особенности распределения задач и передачи данных. Различные проекты. Концепция GRID. Проблемы пользователей. Вопросы и задания. - 3.6. Производительность параллельных компьютеров
Сравнение вычислительных систем. Пиковая производительность и формат данных. Вычислительные и коммуникационные ядра. Тесты. Вопросы и задания.
- 3.1. Классификация параллельных компьютеров и систем
Часть 2. Параллельное программирование
- Глава 4. Большие задачи и параллельные вычисления
- 4.1. Большие задачи и большие компьютеры
Моделирование климатической системы. Обтекание летательных аппаратов. Математические модели и вычислительная техника. Огромные объемы вычислений и размеры памяти. Вопросы и задания - 4.2. Граф алгоритма и параллельные вычисления
Порядок вычислений. Граф алгоритма. Параллельные формы графа. Ярус и высота. Инвариантность к ошибкам округления. Граф алгоритма и информационное ядро. Параметризация в графе. Вопросы и задания. - 4.3. Концепция неограниченного параллелизма
Параллельные алгоритмы. Принцип сдваивания. Примеры алгоритмов малой высоты. Ограниченность концепции. Новые алгоритмы - новые свойства. Трудности в проблеме портабельности. Вопросы и задания. - 4.4. Внутренний параллелизм
Преимущества внутреннего параллелизма. Примеры. Обнаружение новых свойств. Декомпозиция алгоритмов. Использование медленной памяти. Структура алгоритмов и программ. Вопросы и задания.
- 4.1. Большие задачи и большие компьютеры
- Глава 5. Технологии параллельного программирования
- 5.1. Использование традиционных последовательных языков
Обилие средств параллельного программирования. Трудности применения. Необходимость дополнительной информации. Системы программирования Open MP, DVM, mpC. Примеры использования. Вопросы и задания. - 5.2. Системы программирования на основе передачи сообщений
Системы параллельного программирования Линда, MPI, MPI-2. Интерфейсы для последовательных языков Фортран, Си, С++. Примеры использования. Вопросы и задания. - 5.3. Другие языки и системы программирования
Т-система. Система программирования Норма. Приближенность к математическим записям. Примеры использования. Вопросы и задания.
- 5.1. Использование традиционных последовательных языков
- Глава 6. Тонкая информационная структура программ
- 6.1. Графовые модели программ
Информационная структура программы. Операционная и информационная связь. Графы управления, операционно-логической истории, информационный, истории реализации, зависимостей, влияния. Минимальные графы зависимостей. Снова граф алгоритма. Примеры графов. Вопросы и задания. - 6.2. Выбор класса программ
Статический анализ структуры программ. Статистическая значимость отдельных операторов. Линейный класс программ. Вопросы и задания. - 6.3. Графы зависимостей и минимальные графы
Опорные оператор, гнездо циклов, область. Пространства итераций. Лексикографический порядок. Типы зависимостей. Максимальный и минимальный графы зависимостей и их свойства. Теорема об информационном покрытии. Вопросы и задания. - 6.4. Простые и элементарные графы
Простые и элементарные графы и программы. Расщепление минимальных графов на простые. Погружение минимального графа в объединение элементарных. Сведение к анализу элементарных программ. Вопросы и задания. - 6.5. Лексикографический порядок и L-свойство матриц
Лексикографический максимум в многограннике. L-свойство матриц. Критерий лексикографического максимума. Дополнительные свойства матриц с L-свойством. Вопросы и задания. - 6.6. Построение минимальных графов зависимостей
Основная задача. Конструктивные алгоритмы построения элементарных, простых и минимальных графов зависимостей для программ из линейного класса. Вопросы и задания. - 6.7. Циклы ParDO и избыточные вычисления
Лексикографически правильные графы. Параллельные множества. Параллельная структура программ. Критерий цикла ParDO. Избыточные вычисления и критерий их обнаружения. Вопросы и задания. - 6.8. Примеры
Формализованное построение графов алгоритмов для конкретных программ. Сложнейшие графы алгоритмов для простейших программ. Зависимость параллельной структуры от порядка выполнения операций.
- 6.1. Графовые модели программ
- Глава 7. Эквивалентные преобразования программ
- 7.1. Развертки графа
Строгая и обобщенная развертки. Свойства разверток. Развертки и параллельные множества. Конструктивный алгоритм построения кусочно-линейных разверток. Выделение в графах строгих и не строгих зависимостей. Вопросы и задания. - 7.2. Макрографы зависимостей
Макровершины и макродуги. Укрупненное представление зависимостей. Развертки и декомпозиция алгоритмов. Распределенные вычисления. Работа с медленной памятью. Вопросы и задания. - 7.3. Эквивалентные программы
Эквивалентные преобразования программ. Эквивалентные по вычислениям программы. Преобразования, гарантирующие эквивалентность. Вопросы и задания. - 7.4. Наиболее распространенные преобразования
Перестановка циклов. Слияние циклов. Переупорядочивание операторов. Распределение цикла. Скашивание цикла. Расщепление пространства итераций. Выполнение итераций цикла в обратном порядке. Треугольные преобразования. Вопросы и задания. - 7.5. Две сопутствующие задачи
Оценивание длины критического пути графа зависимостей. Распределение массивов по модулям памяти. - 7.6. Примеры
Формализованное построение разверток и макрографов для конкретных программ. Определение циклов ParDO. Распределение массивов по модулям памяти. Эквивалентное преобразование подпрограммы OLDA из пакета тестов Perfect Club Benchmarks. Самые лучшие результаты. Система V-Ray.
- 7.1. Развертки графа
Часть 3. Смежные проблемы и применение
- Глава 8. Вычислительные системы и алгоритмы
- 8.1. Расширение и уточнение линейного класса
Прямая подстановка. Вычисляемый цикл go to. Вычисляемые ветвления. Нелинейные индексные выражения. Уточнение описания внешних переменных. Подпрограммы и функции. Функции min и max. Прямое вычисление графов. Вопросы и задания. - 8.2. Граф-машина
Локальность управления. Свойства различных реализаций. Гомоморфная свертка. Граф-машина и граф вычислительной системы. Сохранение временных режимов. Вопросы и задания. - 8.3. Регулярные и направленные графы
Итерационные процессы и регулярные графы. Расщепление бесконечного регулярного графа. Главный регулярный подграф. Критерий отсутствия контуров. Линейные развертки регулярного графа. Гомоморфная свертка регулярных графов. Вопросы и задания. - 8.4. Математические модели систолических массивов
Систолические массивы как вычислительные системы. Локальность управления. Минимальные коммуникационные связи. Реализация регулярных графов алгоритмов. Примеры построения систолических массивов для заданных алгоритмов. Вопросы и задания. - 8.5. Математическая модель алгебраического вычислителя
Структура алгебраических задач. Спецпроцессор для алгебраических задач. Использование систолического массива для матричной операции A + BC. Вопросы и задания - 8.6. Матрицы и структура алгоритмов
Общие вычислительные процессы. Вариационная матрица алгоритма. Матрицы смежностей и инциденций. Критерий развертки. Уравновешенные графы. Критерий уравновешенности. Вопросы и задания. - 8.7. Новое применение сведений о структуре
Восстановление линейного функционала. Быстрое вычисление градиента. Анализ ошибок округления. Всюду вариационная матрица алгоритма. Вопросы и задания.
- 8.1. Расширение и уточнение линейного класса
- Глава 9. Пользователь в среде параллелизма
- 9.1. Типичные ситуации в вопросах и ответах
Конкретные вопросы из практики параллельного программирования. Исследование возникших ситуаций. Возможные идеи и пути решения. Что следует из перечисленных примеров? Вопросы и задания. - 9.2. Программный сервис в параллельных вычислениях
Почему в программе что-то не так? Компиляторы, отладчики, профилировщики, анализаторы, конверторы. Система V-Ray. Статические и динамические характеристики параллельных программ. Анализ структуры программ. Графовые структуры программ на практике. Вопросы и задания. - 9.3. Организационная поддержка пользователя
Инфраструктура поддержки работы пользователей. Информационно-аналитический Центр по параллельным вычислениям Parallel.ru. Вопросы и задания.
- 9.1. Типичные ситуации в вопросах и ответах
Заключение. Параллельные вычисления: интеграция от А до Я
Список литературы
Предметный указатель
© Лаборатория Параллельных информационных технологий НИВЦ МГУ