Нижегородский государственный университет им. Н.И.Лобачевского Факультет Вычислительной математики и кибернетики Образовательный комплекс Введение в методы параллельного программирования Лекция 1. Введение Гергель В.П., профессор, д.т.н. Кафедра математического обеспечения ЭВМ Содержание Понятие параллельных вычислений Необходимость параллельных вычислений Сдерживающие факторы Характеристика необходимых знаний и умений Структура учебного плана Содержание курса Литература Н.Новгород, 2007 г. Основы параллельных вычислений: Матричное умножение © Гергель В.П. 2 из 22 Понятие параллельных вычислений… Под параллельными вычислениями (parallel or concurrent computations) можно понимать процессы решения задач, в которых в один и тот же момент времени могут выполняться одновременно несколько вычислительных операций Н.Новгород, 2007 г. Основы параллельных вычислений: Матричное умножение © Гергель В.П. 3 из 22 Понятие параллельных вычислений Параллельные вычисления не сводятся к использованию только многопроцессорных вычислительных систем (существуют ли последовательные компьютеры !?) Одновременные выполняемые операции должны быть направлены на решение общей задачи Параллельные вычисления следует отличать от многозадачных (многопрограммных) режимов работы последовательных ЭВМ Н.Новгород, 2007 г. Основы параллельных вычислений: Матричное умножение © Гергель В.П. 4 из 22 Необходимость параллельных вычислений… Опережение потребности вычислений быстродействия существующих компьютерных систем (ex., Problems of Grand Challenge) – – – – – моделирование климата, генная инженерия, проектирование интегральных схем, анализ загрязнения окружающей среды, создание лекарственных препаратов и др. Оценка необходимой производительности – 1012 операций (1 Tflops) Н.Новгород, 2007 г. Основы параллельных вычислений: Матричное умножение © Гергель В.П. 5 из 22 Необходимость параллельных вычислений Теоретическая ограниченность роста производительности последовательных компьютеров Резкое снижение стоимости многопроцессорных (параллельных) вычислительных систем – 1 Cray T90 processor – 1.8 GFlops ($2 500 000), – 8 Node IBM SP2 using R6000 - 2.1 GFlops ($500 000) Смена парадигмы построения высокопроизводительных процессоров многоядерность Н.Новгород, 2007 г. Основы параллельных вычислений: Матричное умножение © Гергель В.П. 6 из 22 Сдерживающие факторы… высокая стоимость параллельных систем – в соответствии с законом Гроша (Grosch), производительность компьютера возрастает пропорционально квадрату его стоимости ?! Н.Новгород, 2007 г. Основы параллельных вычислений: Матричное умножение © Гергель В.П. 7 из 22 Сдерживающие факторы… потери производительности для организации параллелизма – согласно гипотезе Минского (Minsky), ускорение, достигаемое при использовании параллельной системы, пропорционально двоичному логарифму от числа процессоров ?! Н.Новгород, 2007 г. Основы параллельных вычислений: Матричное умножение © Гергель В.П. 8 из 22 Сдерживающие факторы… постоянное совершенствование последовательных компьютеров – в соответствии с законом Мура (Moore) мощность последовательных процессоров возрастает практически в два раза каждые 18 месяцев ?! Н.Новгород, 2007 г. Основы параллельных вычислений: Матричное умножение © Гергель В.П. 9 из 22 Сдерживающие факторы… существование последовательных вычислений – в соответствии с законом Амдаля (Amdahl) ускорение процесса вычислений при использовании p процессоров ограничивается величиной S 1/(f+(1–f)/p) 1/f, где f есть доля последовательных вычислений в применяемом алгоритме обработки данных ?! Н.Новгород, 2007 г. Основы параллельных вычислений: Матричное умножение © Гергель В.П. 10 из 22 Сдерживающие факторы… зависимость эффективности параллелизма от учета характерных свойств параллельных систем (отсутствие мобильности для параллельных программ) ?! Н.Новгород, 2007 г. Основы параллельных вычислений: Матричное умножение © Гергель В.П. 11 из 22 Сдерживающие факторы существующее программное обеспечение ориентировано в основном на последовательные ЭВМ ?! Н.Новгород, 2007 г. Основы параллельных вычислений: Матричное умножение © Гергель В.П. 12 из 22 Характеристика необходимых знаний и умений Архитектура параллельных вычислительных систем Модели вычислений и методы анализа сложности Параллельные методы вычислений Параллельное программирование (языки, среды разработки, библиотеки) Необходим интегрированный курс по параллельному программированию Н.Новгород, 2007 г. Основы параллельных вычислений: Матричное умножение © Гергель В.П. 13 из 22 Содержание курса Принципы построения параллельных вычислительных систем Моделирование и анализ параллельных вычислений Оценка коммуникационной трудоемкости параллельных алгоритмов Параллельное программирование на основе MPI Принципы разработки параллельных методов Параллельные методы вычислений Программная система ПараЛаб для изучения и исследования методов параллельных вычислений Н.Новгород, 2007 г. Основы параллельных вычислений: Матричное умножение © Гергель В.П. 14 из 22 Структура учебного плана Лекции – 32 часа Практика – 16 часов Лабораторный практикум – 16 часов Выполнение лабораторных работ предполагает выполнение трех практических заданий Н.Новгород, 2007 г. Основы параллельных вычислений: Матричное умножение © Гергель В.П. 15 из 22 Литература… Гергель В.П. Теория и практика параллельных вычислений. - М.: Интернет-Университет, БИНОМ. Лаборатория знаний, 2007. Богачев К.Ю. Основы параллельного программирования. - М.: БИНОМ. Лаборатория знаний, 2003. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. - СПб.: БХВ-Петербург, 2002. Немнюгин С., Стесик О. Параллельное программирование для многопроцессорных вычислительных систем — СПб.: БХВ-Петербург, 2002. Н.Новгород, 2007 г. Основы параллельных вычислений: Матричное умножение © Гергель В.П. 16 из 22 Литература… Дополнительная литература: Kumar V., Grama A., Gupta A., Karypis G. Introduction to Parallel Computing. - The Benjamin/Cummings Publishing Company, Inc. 1994. (2nd edn., 2003) Quinn, M. J. Parallel Programming in C with MPI and OpenMP. – New York: McGraw-Hill, 2004. Wilkinson B., Allen M. Parallel Programming. – Prentice-Hall, Inc. 1999. Group W., Lusk E., Skjellum A. Using MPI. Portable Parallel Programming with the Message-Passing Interface. - MIT Press, 1994. Н.Новгород, 2007 г. Основы параллельных вычислений: Матричное умножение © Гергель В.П. 17 из 22 Заключение За время существование вычислительной техники – Скорость срабатывания элементов возросла в 106 раз – Быстродействие вычислений увеличилось в 109 раз Развитие вычислительной техники – это история совершенствования архитектуры и практического использования параллелизма Н.Новгород, 2007 г. Основы параллельных вычислений: Матричное умножение © Гергель В.П. 18 из 22 Вопросы для обсуждения Параллельные вычисления необходимы только для задач с высокой вычислительной трудоемкостью ? Какие можно привести примеры вычислительнотрудоемких задач ? Н.Новгород, 2007 г. Основы параллельных вычислений: Матричное умножение © Гергель В.П. 19 из 22 Следующая тема Принципы построения параллельных вычислительных систем Н.Новгород, 2007 г. Основы параллельных вычислений: Матричное умножение © Гергель В.П. 20 из 22 Авторский коллектив Гергель В.П., профессор, д.т.н., руководитель Гришагин В.А., доцент, к.ф.м.н. Сысоев А.В., ассистент (раздел 1) Лабутин Д.Ю., ассистент (система ПараЛаб) Абросимова О.Н., ассистент (раздел 10) Гергель А.В., аспирант (раздел 12) Лабутина А.А., магистр (разделы 7,8,9, система ПараЛаб) Сенин А.В. (раздел 11) Н.Новгород, 2007 г. Основы параллельных вычислений: Матричное умножение © Гергель В.П. 21 из 22 О проекте Целью проекта является создание образовательного комплекса "Многопроцессорные вычислительные системы и параллельное программирование", обеспечивающий рассмотрение вопросов параллельных вычислений, предусматриваемых рекомендациями Computing Curricula 2001 Международных организаций IEEE-CS и ACM. Данный образовательный комплекс может быть использован для обучения на начальном этапе подготовки специалистов в области информатики, вычислительной техники и информационных технологий. Образовательный комплекс включает учебный курс "Введение в методы параллельного программирования" и лабораторный практикум "Методы и технологии разработки параллельных программ", что позволяет органично сочетать фундаментальное образование в области программирования и практическое обучение методам разработки масштабного программного обеспечения для решения сложных вычислительно-трудоемких задач на высокопроизводительных вычислительных системах. Проект выполнялся в Нижегородском государственном университете им. Н.И. Лобачевского на кафедре математического обеспечения ЭВМ факультета вычислительной математики и кибернетики (http://www.software.unn.ac.ru). Выполнение проекта осуществлялось при поддержке компании Microsoft. Н.Новгород, 2007 г. Основы параллельных вычислений: Матричное умножение © Гергель В.П. 22 из 22