Содержание
- 2. Пути увеличения производительности Наращивание тактовой частоты Реализация параллелизма на уровне команд (ILP) Реализация параллелизма на уровне
- 3. Многопоточность Многопоточность – это свойство платформы или программы, позволяющее процессу состоять из нескольких потоков команд, исполняющихся
- 4. Многопоточное программирование Все потоки находятся в едином адресном пространстве процесса, т.е. имеют общую память Создание потока
- 5. Средства многопоточной синхронизации Mutex (Mutual Exclusion Lock) – объект, который может быть захвачен одновременно только одним
- 6. Пример использования нитей void mul(int start, int end) { for (int i=start; i c[i] = a[i]
- 7. Аппаратная поддержка многопоточности Coarse-grained MT (крупнозернистая многопоточность) Fine-grained MT (мелкозернистая многопоточность) SMT (Одновременная многопоточность)
- 8. Крупнозернистая многопоточность (Coarse-grained MT) 2 и более аппаратных контекстов Регистры общего назначения Счетчик команд Буфер выборки
- 9. Мелкозернистая многопоточность (Fine-grained MT) 2 и более аппаратных контекстов Регистры общего назначения Счетчик команд Одновременно не
- 10. Одновременная многопоточность (Simultaneous MT) 2 и более аппаратных контекстов Регистры общего назначения Буфер выборки инструкций Буфер
- 11. Software Coarse-grained Fine-grained Simultaneous
- 12. Многоядерность vs многопроцессорность (CMP – Chip Multiprocessors) Меньше стоимость при той же производительности Выше скорость обмена
- 13. Структура CMP-процессора
- 14. Многопоточность на основе CMP Простая логика, один поток на ядро Масштабируемость за счет локальности Условная многопоточность
- 15. Распределение ресурсов
- 16. CMP+SMT CMP + SMT CMP
- 17. Многопоточные архитектуры
- 18. Примеры многопоточных архитектур CMP POWER 4 Barcelona Clovertown Opteron SMT Alpha 21464 Pentium 4 Itanium 2
- 19. POWER 4 (2 ядра)
- 20. Dual core Opteron (2 ядра)
- 21. Barcelona (4 ядра)
- 22. Clovertown (4 ядра)
- 23. Alpha 21464 (4 потока)
- 24. Pentium 4 (2 потока)
- 25. POWER 5 2 ядра 2 нити
- 26. UltraSPARC T2 (8 ядер х 8 потоков)
- 28. Скачать презентацию