1 / 38

Московский государственный университет им. М.В.Ломоносова

Московский государственный университет им. М.В.Ломоносова. П а р а л л е л ь н ы е м е т о д ы и а л г о р и т м ы. Введение. Якобовский Михаил Владимирович д.ф.-м.н. Институт математического моделирования РАН, Москва. Что происходит?.

Download Presentation

Московский государственный университет им. М.В.Ломоносова

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Московский государственный университет им. М.В.Ломоносова П а ра л л е л ьны е м е т о ды и а л г о р и т м ы Введение Якобовский Михаил Владимирович д.ф.-м.н. Институт математического моделирования РАН, Москва

  2. Что происходит? • Вычислительная мощность суперкомпьютеров быстро растет • Примеров успешного полноценного использования суперкомпьютеров немного • В среднем вычислительная мощность суперкомпьютеров используется не более чем на несколько процентов

  3. Кто виноват? • Вычислительная мощность суперкомпьютера не более чем прямая сумма мощностей большого числа входящих в его состав процессоров или процессорных ядер • Современные алгоритмы не могут автоматически использовать такую «распределенную» мощность

  4. Что делать? • Изучать известные методы анализа и создания параллельных алгоритмов • Создавать новые методы использования многопроцессорных систем для решения актуальных значимых задач

  5. Кризис эффективности • Вычислительная мощность суперкомпьютеров велика, но: • Она образована суммой мощностей множества исполнительных устройств • На протяжении ряда лет увеличение производительность компьютера автоматически означало снижение времени работы существующих программ. Теперь это не так: • Последовательные программы не могут работать на суперкомпьютерахбыстрее

  6. Кризис эффективности • Время вычислительных систем, обладающих существенной производительностью и имеющих в своем составе только один процессор прошло, и, по всей видимости, безвозвратно • Автоматическое преобразование последовательных программ в параллельные невозможно • Необходимо знать существующие и развивать новые методы решения задач на многопроцессорных системах

  7. Уточнение круга рассматриваемых систем • Системы на основе объединенных сетью типовых вычислительных узлов – системы с распределенной оперативной памятью • Системы с доступом всех процессоров к общей оперативной памяти • Графические ускорители • ПЛИС • Нейрокомпьютеры • Другие …

  8. Многопроцессорные системы с распределенной памятью

  9. Многопроцессорные системы с общей памятью

  10. Уточнение круга рассматриваемых алгоритмов • Слабо взаимодействующие последовательные процессы

  11. Модель программы на распределенной памяти • При запуске указываем число требуемых процессоров Np и название программы • На выделенных для расчета узлах запускается Np копий указанной программы • Например, на двух узлах запущены три копии программы. Копия программы с номером 1 не имеет непосредственного доступа к оперативной памяти копий 0 и 2: • Каждая копия программы получает два значения: • Np • rank из диапазона [0 … Np-1] • Любые две копии программы могут непосредственно обмениваться данными с помощью функций передачи сообщений 0 1 2

  12. Модель программы на общей памяти • Работа начинается с запуска одной программы • При необходимости программа порождает новые процессы, эти процессы: • Обладают собственными локальными переменными • Имеют доступ к общим глобальным переменным int a_global;main нить1 нить2 main() { int b1_local; запуск нити1 } запуск нити2 fun() { int b2_local;ожидание }окончания работы

  13. Свойства канала передачи данных T(n)=n*Tбайта+ Tлатентности Gbit Ethernet Infiniband

  14. Свойства канала передачи данных T(n)=n*Tбайта+ Tлатентности Gbit Ethernet Число передаваемых байт

  15. Свойства канала передачи данных T(n)=n*Tбайта+ Tлатентности Infiniband Число передаваемых байт

  16. Методы передачи данных • Синхронный метод Send(адрес данных, размер, номер процессора) Recv(адрес данных, размер, номер процессора) • Асинхронные методы • Небуферизованный ASend(адрес данных, размер, номер процессора) ARecv(адрес данных, размер, номер процессора) ASync • Буферизованный ABSend(адрес данных, размер, номер процессора)

  17. Синхронный • A=3 • Send(&A) • A=5 • B=4 • Recv(&B) • Print(B) A=3 B=4 Send Результат 3 Recv Print(B) A=5

  18. Асинхронные • A=3 • АSend(&A) • A=5 • B=4 • АRecv(&B) • Print(B) A=3 B=4 ARecv Send ASend A=5 Результат 3 ? 4 ? 5 Print(B) Recv

  19. Асинхронные • A=3 • АSend(&A) • Async() • A=5 • B=4 • АRecv(&B) • Print(B) B=4 A=3 ARecv Send ASend Результат 3 ? 4 Print(B) Recv A=5 ASync

  20. Асинхронные • A=3 • АSend(&A) • Async() • A=5 • B=4 • АRecv(&B) • Async() • Print(B) • Результат • 3 A=3 B=4 ARecv ASend Send ASync Recv Print(B) A=5 ASync

  21. Асинхронныебуферизованные • A=3 • АBSend(&A) • A=5 • B=4 • АRecv(&B) • Async() • Print(B) • Результат • 3 A=3 ABSend buf=A B=4 ARecv Send(&buf) A=5 ASync Recv Print(B)

  22. Семафор • Целочисленная неотрицательная переменная • Две атомарные операции, не считая инициализации • V(S) • Увеличивает значение S на 1 • P(S) • Если S положительно, уменьшает S на 1 • Иначе ждет, пока S не станет больше0 • Языки програмирования. Редактор Ф.Женюи. Перевод с англ В.П.Кузнецова. Под ред. В.М.Курочкина. М:."Мир", 1972 Э. Дейкстра. Взаимодействие последовательных процессов. http://khpi-iip.mipk.kharkiv.edu/library/extent/dijkstra/ewd123/index.html

  23. Ускорение и эффективность параллельных алгоритмов • эффективность • использования процессорной мощности • E(p)=S(p)/p ускорение параллельного алгоритма S(p)=T(1)/T(p) • Ускорение параллельного алгоритма относительно наилучшего последовательного • S*(p)=T * /T(p) • E *(p)=S *(p)/p

  24. Может ли быть S(p)>p ? • Да: • Плохой последовательный алгоритма • Влияние аппаратных особенностей вычислительной системы

  25. Может ли неэффективный алгоритм работать быстрее эффективного? • Да • Если первый алгоритм позволяет использовать больше процессоров, чем второй. • Самый эффективный алгоритм – использующий один (1) процессор. • Его эффективность по определению равна 100%, но он не всегда самый быстрый.

  26. Определить сумму конечного ряда • Все элементарные операции (+ - * / ) выполняются за время с • Все операции выполняются точно, результат не зависит от порядка их выполнения

  27. Последовательный алгоритм S=1; a=1; for(i=1;i<= n;i++) { a=a*x/i; S=S+a; } T1=3nс

  28. Параллельный алгоритм • Вычислить для всех i =1,…,n :xi • Вычислить для всех i =1,…,n :i! • Вычислитьдля всех i =1,…,n :ai = • Вычислитьсумму всех членов ai

  29. xi Для вычисления xiвоспользуемся методом бинарного умножения x 1 x2 2 x3x4 3 x5 x6 x7 x8 4 x9 x10 x11 x12 x13 x14 x15 x16

  30. i! Для вычисления i!воспользуемся аналогичным методом 412 34 56 78910 1112 1314 1516=16! 3 12 34 56 78 910 1112 1314 1516 212 34 56 78 910 1112 1314 1516 112 34 56 78 910 1112 1314 1516

  31. 12! Для вычисления i!воспользуемся аналогичным методом 412 34 56 78910 1112 =12! 3 12 34 56 78 910 1112 1314 1516 212 34 56 78 910 1112 1314 1516 112 34 56 78 910 1112 1314 1516

  32. 14! Для вычисления i!воспользуемся аналогичным методом 412 34 56 78910 1112 1314=14! 3 12 34 56 78 910 1112 1314 212 34 56 78 910 1112 112 34 56 78 910 1112 1314 1516

  33. Параллельный алгоритм • Вычислить все xi: • Вычислить все i! : • Вычислитьвсе ai: - надо nпроцессоров • Вычислитьсумму всех ai: 2

  34. Ускорение и эффективностьпри p=n p=n 1.5 2 1.5

  35. Заключение • Определены понятия ускорения и эффективности параллельных алгоритмов • Представлен ряд способов организации взаимодействия последовательных процессов • Представлен алгоритм, обладающий низкой эффективностью, но высоким быстродействием

  36. Литература… • Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. - СПб.: БХВ-Петербург, 2002. • Грегори Р. Эндрюс - Основы многопоточного, параллельного и распределенного программирования. "Вильямс ", 2003 • Роберт Седжвик - Фундаментальные алгоритмы на C. Части 1 - 5. Анализ. Структуры данных. Сортировка. Поиск. Алгоритмы на графах • Языки программирования. Редактор Ф.Женюи. Перевод с англ. В.П.Кузнецова. Под ред. В.М.Курочкина. М:."Мир", 1972 Э. Дейкстра. Взаимодействие последовательных процессов. http://khpi-iip.mipk.kharkiv.edu/library/extent/dijkstra/ewd123/index.html • Дональд Э. Кнут Искусство программирования

  37. Литература… Учебные курсы Интернет Университета Информационных технологий • Гергель В.П. Теория и практика параллельных вычислений. — http://www.intuit.ru/department/calculate/paralltp/ Лекции в форме видео-конференций • Гергель В.П. Основы параллельных вычислений. — http://www.hpcu.ru/courses/15/ • Немнюгин С.А. Основы параллельного программирования с использованием MPI . — http://www.hpcu.ru/courses/14/ • Крюков В.А., Бахтин В.А. Параллельное программирование с OpenMP . — http://www.hpcu.ru/courses/16/ Дополнительные учебные курсы: • Воеводин В.В. Вычислительная математика и структура алгоритмов. — http://www.intuit.ru/department/calculate/calcalgo/

  38. Литература Ресурсы Internet • http://parallel.ru • http://top500.org • http://supercomputers.ru

More Related