Содержание
- 2. План Типы высокопроизводительных систем Однопроцессорные системы SMP Векторные процессоры Массивно-параллельные системы NUMA системы Кластеры Метакомпьютеры Основные
- 3. Литература http://www.intel.com http://www.parallel.ru Когерентность кэша http://www.update.uu.se/~gus/Misc/Compositions/cache_coherence.html
- 4. Высокопроизводительные системы Основная цель – получение высокой скорости вычислений Обработка больших объемов данных Выполнение большого количества
- 5. Пути повышения производительности Использование новых физических эффектов Увеличение тактовой частоты Параллельные вычисления Использование большого количества вычислительных
- 6. Типы высокопроизводительных систем Однопроцессорные системы (UP) Симметричные многопроцессорные системы (SMP) Векторно-конвейерные системы (PVP) NUMA системы Вычислительные
- 7. Однопроцессорные ЭВМ Один процессор Общая шина Параллелизм на уровне инструкций за счет особенностей устройства процессора
- 8. Скалярная обработка Один поток инструкций Одно функциональное устройство Все инструкции обрабатываются последовательно Каждая инструкция работает со
- 9. Кэширование оперативной памяти Кэш – память с быстрым доступом (быстрее, чем из оперативной памяти) Кэш инструкций
- 10. Предварительная выборка Если данные и инструкции находятся в кэше, то операции с ними выполняются очень быстро
- 11. Пример замедления за счет не попадания в кэш Умножение двух матриц C=AB Cij=AikBkj for(i=0; i for(j=0;
- 12. Пример ускорения за счет кэширования Умножение двух матриц C=AB Cij=AikBkj for(i=0; i for(k=0; k for(j=0; j
- 13. Конвейер (pipeline) Одну сложную операцию можно разбить на несколько простых Если сложную операцию необходимо выполнить с
- 14. Пример конвейерной обработки В платформе P5 4 стадии конвейера IEEE сложение 6 стадий Сравнение порядков Нормализация
- 15. Пример ускорения за счет конвейерной обработки loop unrolling Цикл - разные операции for (i=0; i s+=a[i];
- 16. Суперскалярная обработка Один поток инструкций Несколько функциональных устройств Одновременно считывается несколько инструкций Независимые инструкции обрабатываются одновременно
- 17. Пример суперскалярной обработки (a+jb)*(c+jd)=ac-bd+j(bc+ad) Операции (10 последовательных операций) Загрузка a в регистр Загрузка b в регистр
- 18. Векторная обработка Функциональное устройство обрабатывает последовательно по одной инструкции Инструкции могут быть векторными – одна инструкция
- 19. Пример векторной обработки Сложение двух массивов a[i]+b[i]=c[i] Последовательный вариант c[1]=a[1]+b[1] c[2]=a[2]+b[2] …. c[N]=a[N]+b[N] Порядка 4N операций
- 20. Векторно-конвейерная обработка Конвейер очень эффективен для векторных операций c[]=a[]+b[] Процессор всегда работает эффективно для длинных последовательностей
- 21. Современные микропроцессоры Используются все рассмотренные подходы в комбинации Каждый тип процессора имеет свои особенности и требует
- 22. Intel Pentium Суперскаляр 2 целочисленных конвейера 1 с плавающей точкой Конвейер 5 стадий pre-fetch (PF), Decode
- 23. Intel Pentium III Reordering – перестановка порядка выполнения SSE – streaming SIMD extension 1-2 FPU операции
- 24. Intel Pentium 4 Кэш декодированных инструкций Увеличение количества стадий конвейера да 20 SSE2
- 25. MMX, SSE, SSE2, SSE3 MMX – multimedia extension 8 64-х битных векторных регистра (4 элемента вектора)
- 26. Как работают SIMD расширения Данные записываются в векторные регистры Вызывается одна инструкция для выполнения операции с
- 27. Hyperthreading В суперскалярных процессорах с большим количеством стадий конвейера (Pentium 4, Xeon) на практике используется только
- 28. Когда Hyperthreading эффективен? Эффективен Более эффективная обработка прерываний Более эффективный ввод/вывод (дисковый, сетевой) Подкачка страниц (работа
- 29. RISC процессоры RISC – reduced instruction set Уменьшение количества сложных инструкций За счет этого увеличение производительности
- 30. Характеристики UP процессоров Тактовая частота Количество операций за один такт Обычно 1-3 Производительность – количество операций
- 31. Единицы производительности MIPS - миллион инструкций в секунду Характеристика для сравнения производительности разных процессоров FLOPS –
- 32. Пиковая производительность Максимально теоретически возможная Наиболее точная характеристика процессора
- 33. Пример расчета пиковой производительности Intel Xeon 2 операции с числами с плавающей точкой двойной точности (double)
- 34. Измеренная производительность Измеренная производительность зависит от задачи Процессор эффективен только для определенных последовательностей команд Для некоторых
- 35. Как использовать возможности параллельной обработки UP систем Машинные инструкции необходимо выполнять в оптимальной последовательности Компилятор должен
- 36. Симметричные многопроцессорные системы (SMP) Несколько полностью эквивалентных процессоров, которые работают с общей памятью и подключены к
- 37. Особенности Преимущества Параллелизм на уровне процедур Многопоточные программы Быстрая обработка прерываний Повышение производительности ввода/вывода Сложности Обеспечение
- 38. Синхронизация при обращениях к общей памяти При обращениях к общей данным возможны конфликты чтения-записи Результат двух
- 39. Синхронизация Атомарные операции Неделимые операции – если выполняется атомарная операция с некоторыми данными, то другая атомарная
- 40. Использование блокировок Процессор 1 Захват блокировки, ждем если уже захвачена Критический участок: обращение к совместно используемым
- 41. Проблема когерентности кэшей Кэш каждого процессора хранит копию данных из общей памяти Если эти данные хранятся
- 42. Обеспечение когерентности кэшей Общий кэш Несколько процессоров имеют общий кэш и все данные в кэше синхронизированы
- 43. Перестановка порядка выполнения ввода-вывода Перестановка порядка Современные процессы могут переставлять местами операции чтения записи или Компилятор
- 44. Барьеры Барьер – вид блокировки, который гарантирует, что все операции, которые идут до барьера гарантированно выполнятся
- 45. Обеспечение совместимости за счет компилятора Компилятору можно указывать инструкции в каких случаях можно переставлять данные, а
- 46. Работа с общей шиной Данные между памятью и процессорами передаются по одной общей шине Захват шины
- 47. Уменьшение эффективности SMP при увеличении количества процессоров Больше процессоров Больше одновременно работающий потоков Более интенсивное взаимодействие
- 48. Практические SMP системы Обычно до 8 процессоров Alpha до 64 процессоров Наиболее эффективные 2-4 процессора
- 49. Оптимизация Существуют компиляторы с автораспараллеливанием OpneMP pthread SysV SHM, SEM
- 50. RISС процессоры Могут отсутствовать следующие функции Атомарные операции Обеспечение когерентности кэша Барьеры Вся (или почти вся)
- 52. Скачать презентацию