Научный семинар “Глобальные изменения климата” Современные суперкомпьютерные технологии решения больших задач Вл.В.Воеводин НИВЦ МГУ имени М.В.Ломоносова ИВМ РАН - 4 марта 2009 г. Характеристики суперкомпьютеров IBM RoadRunner, 6562 AMD Opteron DC + 12240 IBM Cell, 1105 Tflop/s, ОП = 98 TB SGI Altix Ice 8200, 51200 CPUs, Intel Xeon 2.66 GHz QC, 487 Tflop/s, ОП = 51 TB, диски = 900 TB IBM Blue Gene, 212992 CPUs, PowerPC 440, 478 Tflop/s, ОП = 74 TB Cray XT4, 38642 CPUs, AMD Opteron 2.3 GHz QC, 266 Tflop/s, ОП = 77 TB, диски = 340 ТB G = 109, T = 1012, P = 1015 Суперкомпьютер СКИФ МГУ - Чебышев Создан МГУ, ИПС РАН и компанией “Т-Платформы” при поддержке компании Интел в рамках суперкомпьютерной программы СКИФ-ГРИД Союзного государства Суперкомпьютер СКИФ МГУ - Чебышев 60 Tflop/s, 1250 процессоров Intel Xeon (*4 ядра) Суперкомпьютер СКИФ МГУ - Чебышев Суперкомпьютер СКИФ МГУ - Чебышев Суперкомпьютер СКИФ МГУ - Чебышев Суперкомпьютер СКИФ МГУ - Чебышев Суперкомпьютер СКИФ МГУ - Чебышев Суперкомпьютер СКИФ МГУ - Чебышев Суперкомпьютер СКИФ МГУ - Чебышев Суперкомпьютер СКИФ МГУ - Чебышев Суперкомпьютер СКИФ МГУ - Чебышев Суперкомпьютер СКИФ МГУ - Чебышев 60 Tflop/s, Linpack = 47,17 Tflop/s (750.000750.000) 625 узлов, 1250 Intel Xeon E5472 3.0 GHz (Harpertown), 5000 ядер, InfiniBand DDR GE ServNet+IPMI, Panasas 60 TB, 98 м2 Высокопроизводительные компьютерные системы (основные классы) Процессоры Векторные, суперскалярные, VLIW Компьютеры с общей памятью Компьютеры с распределенной памятью Распределенные вычислительные среды SMP, NUMA, ccNUMA MPP, кластеры Высокопроизводительные компьютерные системы (степень параллелизма) Степень параллелизма Процессоры 1 Компьютеры с общей памятью 102 Компьютеры с распределенной памятью 104 Распределенные вычислительные среды 106 Высокопроизводительные компьютерные системы (степень параллелизма) Степень параллелизма Процессоры 1 Компьютеры с общей памятью 102 Компьютеры с распределенной памятью 104 Распределенные вычислительные среды 106 Высокопроизводительные компьютерные системы (степень параллелизма) Степень параллелизма Процессоры 2 – 4 – 8 – 12 … Компьютеры с общей памятью 102 Компьютеры с распределенной памятью 104 Распределенные вычислительные среды 106 Многоядерные процессоры: это навсегда 80-ядерный процессор Intel Высокопроизводительные компьютерные системы (основные классы) … GP-GPU FPGAs Cell Векторные … Классические Многоядерные Компьютеры с общей памятью Компьютеры с распределенной памятью Распределенные вычислительные среды Компьютеры с реконфигурируемой архитектурой (http://fpga.parallel.ru) Компьютеры с реконфигурируемой архитектурой (http://fpga.parallel.ru) FPGA Компьютеры с реконфигурируемой архитектурой (http://fpga.parallel.ru) FPGA Компьютеры с реконфигурируемой архитектурой (http://fpga.parallel.ru) Компьютеры с реконфигурируемой архитектурой (http://fpga.parallel.ru) РВС-5: установка в НИВЦ МГУ в середине 2009 года Разработчик – НИИ МВС ЮФУ, г.Таганрог Графические процессоры и HPC (http://gpu.parallel.ru) Графические процессоры и HPC (http://gpu.parallel.ru) Графические процессоры и HPC (http://gpu.parallel.ru) Видеокарта NVidia GeForce 8800 GTX AMD Radeon HD3870x2 AMD Radeon HD4850 Кол-во видеокарт 2 1 1 Кол-во ГПУ на видеокарте 1 2 1 Разрядность вещественных вычислений 32 32 / 64 32 / 64 Типы памяти видеоОЗУ константная разделяемая статическая регистровая видеоОЗУ константная кэш регистровая видеоОЗУ константная кэш регистровая Число и тип потоковых процессоров 128, скалярные 64, векторные (float4) 160, векторные (float4) Пиковая производительность, ГФлопс (32 / 64 бит) 518 / – ГПУ: 421 / 84 Видеокарта: 842 / 168 800 / 160 Техпроцесс 90 нм 55 нм 55 нм Мощность 145 Вт 2 х 150 Вт 150 Вт Энергоэффективность (32 / 64 бит), ГФлопс/Вт 3.57 / – 2.80 / 0.56 5.33 / 1.07 Свойства распределенных вычислительных сред • Масштабность. • Распределенность. • Динамичность. • Неоднородность. • Различная административная принадлежность. Использование вычислительных сред СВОЙСТВА ВЫЧИСЛИТЕЛЬНЫХ СРЕД Класс и свойства задач Структура процесса вычислений Программирование вычислительных сред Выполнение распределенных программ Система метакомпьютинга X-COM (http://x-com.parallel.ru) Решение больших задач в распределенных вычислительных средах Центр “Биоинженерия” РАН. Определение скрытой периодичности в генетических последовательностях. Решена за 63 часа, 2 года на 1 CPU. 8 городов,10 организаций, 14 кластеров, 407 CPUs, Linux/Win. Режим работы узлов среды: монопольно. ПензГУ. Дифракция электромагнитного поля на тонких проводящих экранах. 300 CPUs, решена за 4 дня , 3.2 года на 1 CPU. 4 кластера СКЦ НИВЦ МГУ. Linux. Режим работы: монопольно + по незанятости. ИБМХ РАМН, Гематологический центр РАМН. Поиск молекул-ингибиторов для заданных белков-мишеней (тромбин). 270 CPUs, решена за 11 дней, 4.5 года на 1 CPU. 2 города, 3 кластера, учебный класс. Linux/Win. Режим работы: монопольно + по незанятости + системы очередей. Система метакомпьютинга X-COM (http://x-com.parallel.ru) Куда мы планируем двигаться дальше? Следующий компьютер Московского университета будет установлен к концу 2009 года, производительность: 0.5 Pflops Скорости растут, КПД падает… Компьютерный дизайн лекарств (Intel -fast, исследование эффективности, Clovertown 2.66GHz) Реальная производительность, Mflops 600 500 400 300 200 100 0 1 240 479 718 957 1196 1435 1674 1913 2152 2391 2630 2869 3108 3347 3586 3825 4064 4303 4542 4781 5020 5259 5498 5737 5976 6215 6454 КПД процессора на задаче: 4% !!! Анализ эффективности программ АНАЛИЗ АЛГОРИТМИЧЕСКОГО ПОДХОДА АНАЛИЗ СТРУКТУРЫ ПРИКЛАДНОЙ ПРОГРАММЫ АНАЛИЗ ЭФФЕКТИВНОСТИ СИСТЕМ РАЗРАБОТКИ ПО АНАЛИЗ ЭФФЕКТИВНОСТИ СИСТЕМНОГО ПО АНАЛИЗ КОНФИГУРАЦИИ КОМПЬЮТЕРА Анализ эффективности программ Реальная производительность, Mflops 1000 900 800 700 600 SP 500 DP 400 300 200 100 0 1 94 187 280 373 466 559 652 745 838 931 1024 1117 1210 1303 1396 1489 1582 1675 1768 1861 1954 2047 2140 2233 2326 2419 2512 2605 2698 2791 2884 2977 Анализ эффективности программ АНАЛИЗ АЛГОРИТМИЧЕСКОГО ПОДХОДА АНАЛИЗ СТРУКТУРЫ ПРИКЛАДНОЙ ПРОГРАММЫ АНАЛИЗ ЭФФЕКТИВНОСТИ СИСТЕМ РАЗРАБОТКИ ПО АНАЛИЗ ЭФФЕКТИВНОСТИ СИСТЕМНОГО ПО АНАЛИЗ КОНФИГУРАЦИИ КОМПЬЮТЕРА Что снижает производительность современных кластеров? Закон Амдала Латентность передачи по сети Пропускная способность каналов передачи данных Особенности использования SMP-узлов Балансировка вычислительной нагрузки Возможность асинхронного счета и передачи данных 7. Особенности топологии коммуникационной сети 1. 2. 3. 4. 5. 6. 8. Топология FatTree: СКИФ МГУ “Чебышев” Что снижает производительность современных кластеров? Закон Амдала Латентность передачи по сети Пропускная способность каналов передачи данных Особенности использования SMP-узлов Балансировка вычислительной нагрузки Возможность асинхронного счета и передачи данных 7. Особенности топологии коммуникационной сети 8. Производительность отдельных процессоров 9. ... 1. 2. 3. 4. 5. 6. Что влияет на производительность узлов кластеров? • • • • • • • • • • • • • • • • • использование суперскалярности, неполная загрузка конвейерных функциональных устройств, пропускная способность кэшей, основной памяти, каналов передачи данных, объем кэш-памяти различных уровней и основной памяти, степень ассоциативности кэш-памяти различных уровней, несовпадение размера строк кэш-памяти различных уровней, несовпадение степени ассоциативности кэш-памяти различных уровней, стратегия замещения строк кэш-памяти различных уровней, стратегия записи данных, принятая при работе с подсистемами памяти, расслоение оперативной памяти (структура банков), частота работы оперативной памяти, частота FSB, ширина FSB, несоответствие базовых частот: процессора, FSB и оперативной памяти, влияние “NUMA” в серверах с архитектурой ccNUMA, влияние “cc” в серверах с архитектурой ccNUMA, влияние ОС (менеджер виртуальной памяти, накладные расходы на сборку мусора и выделение памяти). J, I: A( I,J I,J) :A = (I, (A (I J) = ,J )+ (A B (I, (I, A( J )+ J ))* B( C I) ( = I (A ,J )) I,J ) A( (I) *C +B (I, I) = J A (I)) ) ( * I A( )+ C( I) B( I) = I) A( A (I * C( ) I) I) = + B( A I) A( (I)+ * C I) A( = I)* B C A( + A( A( I) I) = I = B )*C + A B A( (I) +A A(I) (I * I) = = 3. )*3 B . 3. 1 14 41 14 1 5 5 1 A( 5+A +A ( I I) = (I )* )*C A( A (I 3 .1 ) I) 4 = + A( 15 A I A( (I) )* A + I) ( = B(I I) A (I) )+ C A( *B ( (I) I I) = )*C ( A A( (I) I) I) +B = A (I) (I A A( (I) )*B (I I) = =A ) A (I) (I)*B A( *3. I) 14 = A 15 A( (I)/ A( B( I I) ) = I = A ) ( A (I) I)+ A( + 3 B .1 I) 4 = I* 15 3. 14 15 Производительность, Mflops Производительность на базовых операциях Clowertown 1,6 GHz 1800 1600 1400 1200 1000 800 600 400 200 0 J, I: A( I,J I,J) :A = (I, (A (I J) = ,J )+ (A B (I, (I, A( J )+ J ))* B( C I) ( = I (A ,J )) I,J ) A( (I) *C +B (I, I) = J A (I)) ) ( * I A( )+ C( I) B( I) = I) A( A (I * C( ) I) I) = + B( A I) A( (I)+ * C I) A( = I)* B C A( + A( A( I) I) = I = B )*C + A B A( (I) +A A(I) (I * I) = = 3. )*3 B . 3. 1 14 41 14 1 5 5 1 A( 5+A +A ( I I) = (I )* )*C A( A (I 3 .1 ) I) 4 = + A( 15 A I A( (I) )* A + I) ( = B(I I) A (I) )+ C A( *B ( (I) I I) = )*C ( A A( (I) I) I) +B = A (I) (I A A( (I) )*B (I I) = =A ) A (I) (I)*B A( *3. I) 14 = A 15 A( (I)/ A( B( I I) ) = I = A ) ( A (I) I)+ A( + 3 B .1 I) 4 = I* 15 3. 14 15 Производительность, Mflops Масштабирование по частоте CPU? Clowertown 1,6 GHz Clowertown 2,66GHz Ideal = X * 2,66 1,6 1800 1600 1400 1200 1000 800 600 400 200 0 J, I: A( I,J I,J) :A = (I, (A (I J) = ,J )+ (A B (I, (I, J A( )+ J ))* B( C I) ( = I (A ,J )) I,J ) A( (I) *C +B (I, I) = J A (I)) ) A( (I)+ *C( I) B( I) = I)* A C A( ( I )+ (I) I) B( = A I) ( A( I)+ * C I) A( = I)* B C A( + A( A( I) I) = I = B )*C + B A A( (I) +A A(I) (I * I) = = 3. )*3 B . 3. 1 14 41 14 1 5+ 5 1 A( 5+A A (I I) (I ) )*C = * A( A (I 3 .1 4 ) I) = + A( 15 A A( (I) I)* A + I) ( = B(I I) A (I) )+ C A( *B ( (I) I I) = )*C A( A (I) (I) I) +B = A (I) (I A A( (I) )*B (I I) = =A ) A (I (I)* A( )*3. B I) 14 = A 15 (I A A( (I) )/B (I I) = = A ) ( A (I) I)+ B + A( 3. I) 14 = I* 15 3. 14 15 Производительность, Mflops Реальное масштабирование на практике… Clowertown 1,6 GHz Clowertown 2,66GHz Ideal Clowertown 2,66 GHz 1800 1600 1400 1200 1000 800 600 400 200 0 Реальное масштабирование на практике… Clowertown Clowertown – – CPU 1,6 GHz 2,66 GHz FSB 1,066 GHz 1,333 GHz CPU / FSB – это число тактов процессора на каждый такт работы системной шины: для Clowertown 1,6 GHz – это 1,5 для Clowertown 2,66 GHz – это 2 1,5 / 2 = 0,75 – замедление работы с памятью (2,66 / 1,6 ) * 0,75 = 1,24 – реальное ускорение J, I: A( I,J I,J) :A = (I, (A (I J) = ,J )+ (A B (I, (I, J A( ) J )) I) +B( *C( = I (A ,J )) I,J ) A( (I) *C +B (I, I) = J A (I)) ) ( * I C A( )+ I) B( (I) = I) A( A (I * C( ) I) I) = + B( A I) A( (I)+ * C I) A( = I)* B C A( + A( A( I) I) = I = B )*C + B A A( (I) +A A(I) (I I) * = = 3. )*3 B . 3. 1 14 41 14 1 5 5 1 + A( 5+A A (I I) (I ) )*C = * A( A (I 3 .1 4 ) I) = + A( 15 A A( (I) I)* A + I) ( = B(I I) A (I) )+ C A( *B ( (I) I I) = )*C ( A A( (I) I) I) +B = A (I) (I A( A(I) )*B (I I) = =A ) A (I) (I)*B A( *3. 14 I) = A 15 (I A A( (I) )/B (I I) = = A ) ( A (I) I)+ B + A( 3. I) 14 = I* 15 3. 14 15 Производительность, Mflops Теория и практика масштабирования Clowertown 1,6 GHz Clowertown 2,66GHz Ideal Clowertown 2,66 GHz Clowertown1*1,24 1800 1600 1400 1200 1000 800 600 400 200 0 J, I: A I, J (I ,J :A )= (I , (A J) ( = I,J) (A +B ( ( A( I,J)+ I, J) )* I) = B(I, C(I ( J , A( A(I ))* J) I) )+B C( I = A( (I )) , J) A( I)+ *C I) B( (I) = A( A( I )*C I) I) ( = +B I) A( (I ) A( I)+ *C I) A( = I )* A B A( C ( + I ) = A( I) = B I) A( A(I B+ +A *C I) ) = A( I)* (I)*B = 3 3. .1 3. 14 41 14 15 5 1 A( +A +A( 5 I) (I) I)* A( = A *3. C 1 ( I) = I)+A 415 A( A(I (I ) ) I) * = +B( A(I A( I ) ) I) +C A( *B( (I ) I) I) = *C A( A( (I) I) I)+ = A( B(I ) I)* A A( I) (I) = B(I ) = A( A(I ) I A( )*3 *B I) .14 = A( 15 A A( I I) (I) = )/ B( = I A( A( ) I A( I)+3 )+B I) = .14 I*3 15 .1 41 5 Эффективность, % КПД работы процессоров … Clowertown 1,6 GHz Clowertown 2,66 GHz 16 14 12 10 8 6 4 2 0 = = A +B (I) + (A (I) (I) ) A( I) *C ( B( I) I )* = C( A (I) I A( +B ) I) = (I) A *C (I) +A A( I) (I) = *C B +A A( I) (I) A( = *C I) B = + A B (I +A A( I (I) )*B )= A( I) 3. *3.1 = 14 41 3. 15 14 5 +A 15 (I +A A( (I ) )*C I) *3 = .1 A 41 ( A( I)+ 5 I) A = ( I )* A A( (I)+ A(I) I) B( = I)+ A C (I) *B (I) A( (I) I) *C = (I A (I) ) A( +B I) (I) = A (I) *B A (I) A( (I) = I) A = (I A (I) )*B *3 A( .1 I) 41 = 5 A (I) A /B (I) A( (I) = I) A = (I) A + (I) +3 B .1 41 5 A( I) A( I) КПД работы процессора, % КПД работы процессоров … Clowertown 1.6 GHz Clowertown 2.66 GHz Dempsey 3.0 GHz Opteron 1.8 GHz Woodcrest 2.66 GHz Xeon 3.2 GHz 25,00 20,00 15,00 10,00 5,00 0,00 Процессоры и массивы… 20,00 Clowertown 1.6 GHz Clowertown 2.66 GHz 15,00 Dempsey 3.0 GHz Opteron 1.8 GHz 10,00 Woodcrest 2.66 GHz Xeon 3.2 GHz 5,00 (I) (I) *B A( I) = A A = A( I) (I) + A = A( I) (I) *B B( I) B (I) + A = A( I) B( I)* C( I) (I) + A( I) = A B = A( I) = B (I) + +A (I) *C A( I)* C 0,00 A( I) КПД работы процессора, % 25,00 Простой пример. Исходный текст for ( i = 1; i < N; i++) { for ( j = 1; j < N; j++) { for ( k = 1; k < N; k++) { DSUM[i][k] = DSUM[i][k] + S[k] * A[k][j][i] + P[i][j] * A[k][j][i–1] + P[i][k] * A[k][j–1][i] + P[j][k] * A[k–1][j][i]; } } } Простой пример. Эффект от преобразований (перестановка циклов, раскрутка, Intel -fast) 16 14 opteron2 opteron4 xeon1 dempsey1 10 pentiumd1 8 woodcrest2 woodcrest4 6 woodcrest6 woodcrest7 4 clovertown1 clovertown3 2 un j, k , ro llin i g2 un k ro llin gun 2 j ro llin gun 2 ro llin i gun 3 k ro llin gun 3 j ro llin g3 i k, i, j k i,j, k, j, i i, k ,j k 0 j,i, Время, сек. 12 Простой пример. Эффект от преобразований (перестановка циклов, раскрутка, PGI) 18 16 opteron2 14 opteron4 dempsey1 10 pentiumd1 woodcrest2 8 woodcrest4 6 woodcrest6 woodcrest7 4 clovertown1 2 clovertown3 j, k un ,i ro llin g2 un k ro llin gun 2 j ro llin gun 2 ro llin i g3 un k ro llin gun 3 j ro llin g3 i k, i, j k i,j, k, j, i i, k ,j k 0 j,i, Время, сек. xeon1 12 Сравнение компиляторов: Intel и PGI (простой пример, PGI/Intel) 2 1,8 opteron2 opteron4 PGI(сек)/Intel(сек) 1,6 xeon1 dempsey1 1,4 pentiumd1 woodcrest2 1,2 woodcrest4 woodcrest6 1 woodcrest7 clovertown1 0,8 clovertown3 0,6 j,i ,k ,j i,k j,i k, i,j ,k i,j k, ,i j,k ro un llin 2 g- k ro un 2 lli ng j ro un lli -2 g n i l ro n u lin 3 g- k l ro n u li -3 g n j l ro n u 3 li ng i Характеристики работы программно-аппаратной среды • • • • • • • • • • • • • • • • Количество задач в состоянии счёта на узле Число переключений контекста Процент использования CPU программами пользователя Процент использования CPU системой Процент использования CPU программами с приоритетом nice Процент простоя CPU Длина очереди процессов на счёт Объём памяти, занятой под системные кэши Объём памяти, свободной Объём памяти, используемой Общий объём памяти Количество принятых пакетов по сети Ethernet; Количество отправленных пакетов по сети Ethernet; Количество принятых байт по сети Ethernet; Количество отправленных байт по сети Ethernet; Количество ошибок типа carrier (отсутствие сигнала) в Ethernet; Количество ошибок типа collision (коллизия при передаче) в Ethernet; Количество ошибок типа drop (потеря пакета) в Ethernet; Количество ошибок типа err (прочие ошибки) в Ethernet; Количество ошибок типа fifo (переполнение буфера) в Ethernet; Количество ошибок типа frame (приём неверно сконструированного пакета) в Ethernet; Количество принятых блоков по NFS; Количество отправленных блоков по NFS; Число авторизаций на NFS сервере; Число операций на NFS сервере; Число перепосылок при общении с NFS сервере; Количество блоков, считанных из файла подкачки (paging); Количество блоков, записанных в файл подкачки (paging); Количество блоков, считанных из файла подкачки (swaping); Количество блоков, записанных в файл подкачки (swaping) Чтение с локального жёсткого диска; Запись на локальный жёсткий диск; Свободное место в /tmp Исследование динамических свойств программ Исследование динамических свойств программ Исследование динамических свойств программ Исследование динамических свойств программ Сертификация эффективности параллельных программ • Эффективность последовательная • Эффективность параллельная Объекты исследования: Задача – Алгоритм – Программа – Системное ПО – Компьютер Необходимы методика, технологии и программные инструменты сертификации эффективности и для пользователей, и для администраторов больших машин Необходима развитая инфраструктура ПО для решения задачи отображения программ и алгоритмов на архитектуру современных вычислительных систем Параллелизм – новый этап развития компьютерного мира ОБРАЗОВАНИЕ! ОБРАЗОВАНИЕ! ОБРАЗОВАНИЕ! Учебный процесс и образование Коллективный банк тестов “СИГМА” (по параллельным вычислениям) Коллективный банк тестов “СИГМА” (по параллельным вычислениям) Коллективный банк тестов “СИГМА” (по параллельным вычислениям) Коллективный банк тестов “СИГМА” (по параллельным вычислениям) Коллективный банк тестов “СИГМА” (по параллельным вычислениям) Успеваемость по группам 250 200 150 100 50 0 1 -50 -100 11 21 31 41 51 61 71 81 91 101 111 121 131 141 151 161 171 181 191 201 211 Учебный процесс и образование