20160905_msu_yak_01b_0 (Лекции)
Описание файла
Файл "20160905_msu_yak_01b_0" внутри архива находится в папке "Лекции". PDF-файл из архива "Лекции", который расположен в категории "". Всё это находится в предмете "параллельные методы решения задач" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Основные понятияПараллельныевысокопроизводительныевычисленияЯкобовский М.В., проф., д.ф.-м.н.СКИ МГУ,Институт прикладной математикиим. М.В.Келдыша РАН, МоскваМосква, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.1Содержание лекцииМногопроцессорные системы– с распределенной памятью– с общей памятью– ГибридныеМодели выполнения программСвойства канала передачи данныхМетоды взаимодействия процессов– Методы передачи данных– СемафорыУскорение и эффективность параллельных алгоритмовПример алгоритма с низкой эффективностью, но высокимбыстродействиемМосква, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.2Транспьютерная материнская плата МТБ-8Москва, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.3Транспьютер и оперативная памятьМосква, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.4Три транспьютера на плате МТБ-8Москва, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.5Структура транспьютера T-800Москва, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.6Узел с общей памятью – транспьютер и процессоробщего назначенияМосква, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.7Узел PowerXplorerМосква, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.8Гибридная системаМосква, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.9ВопросЗачем нужны транспьютерные линки?a.
Для ввода-вывода данныхb. Для подвода питания к транспьютерамc. Для передачи данных между транспьютерамиМосква, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.10ВопросМожно ли на основе транспьютеров делатьсистемы с общей памятью?a. Можно делатьb. Нельзя делатьc. Только такие системы и можно делатьМосква, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.11Уточнение круга рассматриваемых системСистемы на основе объединенныхсетью типовых вычислительныхузлов – системы с распределеннойоперативной памятьюСеть передачи данныхСистемы с доступом всехпроцессоров к общей оперативнойпамятипроцессороперативная памятьвычислительный узелПараллельные высокопроизводительныеМосква, 2016 г.вычисления: Основные понятия ©12Модель выполнения программы на распределеннойпамятиПри запуске указывается число требуемых процессоров Np и названиепрограммыНа выделенных для расчета узлах запускается Npкопий программы– Например, на двух узлах запущены три копии программы.
Копия программы сномером 1 не имеет непосредственного доступа к оперативной памяти копий 0 и 2:Вычислительный узел 10Вычислительный узел 212В каждой копии программы известны значения двух переменных– Np – одинаковое во всех копиях – число копий– rank из диапазона [0 … Np-1] – уникальный номер копииЛюбые две копии программы могут непосредственно обмениватьсяданными с помощью функций передачи сообщений Send/RecvМосква, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.13Синхронные обмены даннымиA=3Send(&A)A=5A=3B=4Recv(&B)Print(B)B=4SendRecvРезультат3Print(B)A=5Москва, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.14Свойства канала передачи данныхT(n)=n*Tпередачи байта+ TлатентностиGbit EthernetЧисло передаваемых байтМосква, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.15Свойства канала передачи данныхT(n)=n*Tпередачи байта+ TлатентностиВремя передачи данных (мкс)2.001.501.000.50Infiniband0.000100020003000400050006000Число передаваемых байт6.8 Гбайт/сЗа 0.7 мкс передаётся 5 КбайтМосква, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.16ВопросПри каком способе передачи массива чисел будетзатрачено меньше времени?a.
Передача каждого числа отдельным сообщениемb. Объединение всех чисел в единый массив и передачамассива одним сообщениемc. Не имеет значенияМосква, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.17Модель выполнения программы на общей памятиРабота начинается с запуска одногоэкземпляра программыПри необходимости программа порождает новые процессы, каждый из которых:– Обладает собственными локальными переменными– Имеет доступ к глобальным переменнымint a_global;mainmain(){int b1_local;Запуск нити(fun())}fun(){int b2_local;Запуск нити(…)}Москва, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.18Модель выполнения программы на общей памятиРабота начинается с запуска одногоэкземпляра программыПри необходимости программа порождает новые процессы, каждый из которых:– Обладает собственными локальными переменными– Имеет доступ к глобальным переменнымint a_global;mainнить1main(){int b1_local;Запуск нити(fun())}fun(){int b2_local;Запуск нити(…)}Москва, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.19Модель выполнения программы на общей памятиРабота начинается с запуска одногоэкземпляра программыПри необходимости программа порождает новые процессы, каждый из которых:– Обладает собственными локальными переменными– Имеет доступ к глобальным переменнымint a_global;mainнить1нить2main(){int b1_local;Запуск нити(fun())}fun(){int b2_local;Запуск нити(…)}Москва, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.20Модель выполнения программы на общей памятиРабота начинается с запуска одногоэкземпляра программыПри необходимости программа порождает новые процессы, каждый из которых:– Обладает собственными локальными переменными– Имеет доступ к глобальным переменнымint a_global;mainнить1нить2main(){int b1_local;Запуск нити(fun())}fun(){int b2_local;Запуск нити(…)}Москва, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.21Что будет напечатано?int a=1;Нить1Нить2{{a=a+2}a=a+3}Нить3{print(a)}a=?Москва, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.22Что будет напечатано?int a=1;Нить1{a=a+2}Нить2{a=a+3}Нить3{print(a)}6Москва, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.23Что будет напечатано?int a=1;Нить1{a=a+2}Нить3{print(a)}Нить2{a=a+3}Москва, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.324Что будет напечатано?int a=1;Нить1Нить2{{a=a+2a=a+3}}Нить332Процессор1Процессор22+1=33+1=434{print(a)}6 ? 4 ? 3Москва, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.25Что будет напечатано?int a=1;Нить1Нить2{{a=a+2}Нить3a=a+3}{print(a)}6 ? 4 ? 3 ? __Москва, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.26СемафорЦелочисленная неотрицательная переменная Инициализация и две атомарные операцииОперация V(S)– Увеличивает значение S на 1Операция P(S)– Если S положительно, то уменьшает S на 1– Иначе ждет, пока S не станет больше 0Языки программирования.
Редактор Ф.Женюи. Перевод с англ.В.П.Кузнецова. Под ред. В.М.Курочкина. М:."Мир", 1972 Э. Дейкстра.Взаимодействие последовательных процессов.http://khpi-iip.mipk.kharkiv.edu/library/extent/dijkstra/ewd123/index.htmlМосква, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.27Что будет напечатано?int a=0;Sem S=1, S1=0, S2=0;Нить1Нить2{P(S)a=a+2V(S)V(S1)}{P(S)a=a+3V(S)V(S2)}Нить3{P(S1)P(S2)print(a)}6Москва, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.28Ускорение и эффективность параллельныхалгоритмовускорениепараллельногоалгоритмаэффективностьиспользованиявычислительной мощностиE(p)=S(p)/pS(p)=T(1)/T(p)Может ли ускорение превышать число процессоров?S(p)> pE(p)>100%Москва, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.29Ускорение и эффективность параллельныхалгоритмовускорениепараллельногоалгоритмаэффективностьиспользованиявычислительной мощностиS(p)=T(1)/T(p)Может ли ускорение превышать число процессоров?S(p)> pE(p)>100%Москва, 2016 г.E(p)=S(p)/pДа, если учитывать влияниеаппаратных особенностейвычислительной системыПараллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.30Ускорение и эффективность параллельныхалгоритмовускорениепараллельногоалгоритмаэффективностьиспользованиявычислительной мощностиS(p)=T(1)/T(p)Может ли ускорение превышать число процессоров?S(p)> pE(p)>100%Москва, 2016 г.E(p)=S(p)/pДа, если выбран неудачныйпоследовательный алгоритмПараллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.31Может ли быть S(p)>p ?– Пример неудачного последовательного алгоритмаСортировкамассивасортировкаполовинымассивасортировкаполовинымассиваслияние отсортированных половинок массиваМосква, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.32Может ли быть S(p)>p ?– Пример неудачного последовательного алгоритмаСортировкамассивасортировкаполовинымассивасортировкаполовинымассиваслияние отсортированных половинок массиваМосква, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.33Может ли быть S(p)>p ?– В последовательном алгоритме выполняется большеопераций, чем в параллельномСортировкамассивасортировкаполовинымассивасортировкаполовинымассиваслияние отсортированных половинок массиваМосква, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.34Ускорение и эффективность параллельныхалгоритмовускорениепараллельногоалгоритмаэффективностьиспользованиявычислительной мощностиE(p)=S(p)/pS(p)=T(1)/T(p)Ускорение параллельногоалгоритма относительнонаилучшего последовательного**S (p)= T (1)/T(p)**E (p)= S (p)/pМосква, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.35Может ли неэффективный алгоритм работатьбыстрее эффективного?Да– Если первый алгоритм позволяет использовать большепроцессоров, чем второй.Самый эффективный алгоритм – использующийодин (1) процессор.– Его эффективность равна 100%,но он не всегда самый быстрый.Москва, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.36Определить сумму конечного рядаn известно заренее, меняется только х Все элементарные операции (+ - * / )выполняются за время с Все операции выполняются точно, результат независит от порядка их выполнения Число процессоров не ограниченоМосква, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.37Последовательный алгоритмS=1;a=1;for(i=1;i<= n;i++){a=a*x/i;S=S+a;}Москва, 2016 г.T1= 3nсПараллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.38Параллельный алгоритмВычислить для всехi =1,…,n :xiВычислить для всехi =1,…,n :i!Вычислить для всехi =1,…,n : ai =Вычислить сумму всех членовМосква, 2016 г.aiПараллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.39xiДля вычисления xi воспользуемся методомбинарного умноженияxx212x3x534 x9 x10Москва, 2016 г.x6x11 x12x4x7x8x13 x14 x15 x16Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.40Параллельное вычисление всех требуемыхi! ??Москва, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.41i!4 12 34 56 78910 1112 1314 1516=16!3 1 2 3 4 5 6 7 8910 1112 1314 15162 12 34 56 78 910 1112 1314 15161 12 34 56 78Москва, 2016 г.910 1112 1314 1516Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.4214!Для вычисления i! воспользуемсяаналогичным методом4 12 34 56 78910 1112 1314=14!3 1 2 3 4 5 6 7 82910 1112 131412 34 56 78 910 11121 1 2 3 4 5 6 7 8Москва, 2016 г.910 1112 1314 1516Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.43Новые операцииВычисление всех факториалов до 4! включительноШаг123Москва, 2009 г.Процессор 1Процессор 2Процессор 3Процессор 42!=123!= 123 4!=1234Параллельные методы и алгоритмы: Методы построенияпараллельных программ © Якобовский М.В.44 из 60Новые операцииВычисление всех факториалов до 4! включительноШаг123Шаг123Процессор 1Процессор 22!=123!=(2!) (3)4!=(12)(34)Процессор 1Процессор 22!=123!=12 34!=1234Москва, 2009 г.Процессор 3 Процессор 4Процессор 3 Процессор 4Параллельные методы и алгоритмы: Методы построенияпараллельных программ © Якобовский М.В.45 из 60Новые операцииВычисление всех факториалов до 4! включительноШаг123Москва, 2009 г.Процессор 1Процессор 21 21233 41234Процессор 3Параллельные методы и алгоритмы: Методы построенияпараллельных программ © Якобовский М.В.Процессор 446 из 60Новые операцииВычисление всех факториалов до 8! включительноШаг123Москва, 2009 г.Процессор 1Процессор 21 2123123453 41234123456Процессор 3Процессор 45 67 856756781234567 12345678Параллельные методы и алгоритмы: Методы построенияпараллельных программ © Якобовский М.В.47 из 60Новые операцииВычисление всех факториалов до 8! включительноШаг123Процессор 1Процессор 21 2123123453 41234123456F=1;for(i=2;i <= n;i++)F*=i;Процессор 3Процессор 45 67 856756781234567 12345678Tp n / 2 (n) c log 2 nn 17S 2.33(3) 4 plog 2 n n 8 3p 4T1 (n) c (n 1)Москва, 2009 г.E p 4 (n 8) 712Параллельные методы и алгоритмы: Методы построенияпараллельных программ © Якобовский М.В.48 из 60Новые операцииШаг123Процессор 1Процессор 2Процессор 3Процессор 41 2123123453 45 67 812345675678123456 1234567 12345678n 177Tp n / 2 (n) c log 2 n S 4 p E p 4 (n 8) log 2 n n 8 312p 4Шаг123Москва, 2009 г.Процессор 11242!3!5!Процессор 28353 44!6!Процессор 391165 65677!Параллельные методы и алгоритмы: Методы построенияпараллельных программ © Якобовский М.В.Процессор 4101277 856788!49 из 60Параллельный алгоритмВычислить для всехi =1,…,n : xiTp n / 2 (n) c log 2 nВычислить для всехi =1,…,n : i!Tp n / 2 (n) c log 2 nВычислить для всехi =1,…,n : ai =Вычислить сумму всех членовМосква, 2016 г.aiПараллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.xii!Tp n (n) cTp n / 2 (n) c log 2 n50ЗаключениеОпределены классы рассматриваемыхвычислительных систем Представлены модели параллельных программ Представлен ряд способов организациивзаимодействия последовательных процессов Представлен алгоритм, обладающий низкойэффективностью, но высоким быстродействиемМосква, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.64Вопросы для обсужденияСколько нужно процессоров для вычислениясуммы рядаза время2где q – константа+q,Приведите примеры алгоритмов, обладающихэффективностью больше 100%.Есть ли процессорные инструкции P(S) и V(S)?Москва, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.65КонтактыЯкобовский М.В.д.ф.-м.н., проф.,зав.
сектором«Программного обеспечения многопроцессорныхсистем и вычислительных сетей»Института прикладной математики им.М.В.Келдыша Российской академии наукmail: lira@imamod.ruweb: http://lira.imamod.ruМосква, 2016 г.Параллельные высокопроизводительные вычисления: Основныепонятия © Якобовский М.В.66.