- •Курс лекций
- •Оглавление
- •1. Архитектура и принципы работы обычных эвм с центральным процессором (cpu) 9
- •2. Методы повышения производительности традиционных эвм 27
- •3. Типы архитектур высокопроизводительных вычислительных систем 45
- •4. Потоковые параллельные вычисления для физического моделирования 62
- •5. Применение графических процессоров на примерах сложения матриц и решения дифференциальных уравнений 82
- •6. Молекулярная динамика на графическом процессоре 100
- •7. Высокоскоростное моделирование систем с дальнодействием 125
- •8. Восстановление потенциалов межчастичных взаимодействий по температурной зависимости периода решетки методами высокоскоростного мдм на графических процессорах 145
- •9. Базовые особенности программирования графических процессоров шейдерной модели 4.0 160
- •Введение
- •1.Архитектура и принципы работы обычных эвм с центральным процессором (cpu)
- •1.1.Структура традиционной эвм
- •1.2.Организация работы эвм
- •1.3.Иерархия памяти компьютера
- •1.4. Выполнение команд
- •1.5.Требования к коммуникационным линиям
- •1.6.Устройства ввода-вывода
- •2.Методы повышения производительности традиционных эвм
- •2.1. Распараллеливание расчетов
- •2.2.Конвейерная обработка данных и команд
- •2.3.Высокопроизводительные процессоры
- •2.3.1.Суперскалярные процессоры
- •2.3.2.Процессоры risc с сокращенным набором команд
- •2.3.3.Процессоры со сверхдлинным командным словом
- •2.3.4.Векторные процессоры
- •2.3.5.Процессоры для параллельных компьютеров
- •2.3.6.Процессоры с многопоточной архитектурой
- •2.3.7.Технология Hyper-Threading
- •2.4.Требования к памяти высокопроизводительных эвм
- •2.5.Коммуникационная сеть высокопроизводительных эвм
- •2.5.1.Статические и динамические топологии и маршрутизация коммуникационных систем
- •2.5.2.Многокаскадные сети и методы коммутации
- •2.6.Классификация архитектур параллельных компьютеров
- •3.Типы архитектур высокопроизводительных вычислительных систем
- •3.1.Simd архитектура (с разделяемой и распределенной памятью)
- •3.2. Mimd архитектура с разделяемой и распределенной памятью
- •3.3. Комбинированные системы
- •3.4. Мультипроцессорные и мультикомпьютерные системы
- •3.5.Кластеры пэвм и рабочих станций
- •3.6.Особенности параллельного программирования
- •4.Потоковые параллельные вычисления для физического моделирования
- •4.1.Общие принципы распараллеливания расчётов
- •4.2.Обмен данными между процессором и памятью
- •4.3.Графические процессоры как вычислительные системы для поточно-параллельных расчётов
- •4.3.1.Вычислительные возможности центральных процессоров общего назначения и графических процессоров
- •4.3.2.Графический конвейер
- •4.3.3.История программируемости графических процессоров
- •4.3.4.Требования к алгоритмам для gpu, поддерживающих шейдерную модель 3.0
- •4.3.5.Возможности gpu в рамках шейдерной модели 3.0 и взаимодействие gpu с памятью
- •4.3.6.Проблема одинарной точности
- •4.4.Средства программирования графических процессоров
- •4.4.1.Общая структура программы для физического моделирования на графическом процессоре
- •4.4.2.Необходимое программное обеспечение
- •4.5.Области использования графических процессоров
- •5.Применение графических процессоров на примерах сложения матриц и решения дифференциальных уравнений
- •5.1.Распараллеливание независимых вычислений
- •5.2.Используемый графический процессор
- •5.3.Представление данных для графического процессора
- •5.4.Программирование вычислительного ядра
- •5.5.Взаимодействие центрального и графического процессоров
- •5.5.1.Функции центрального процессора
- •5.5.2.Пример программы
- •6.Молекулярная динамика на графическом процессоре
- •6.1.Принципы моделирования ионных кристаллов методом молекулярной динамики
- •6.2.Программирование графического процессора для расчёта действующих на ионы результирующих сил
- •6.2.1.Исходные данные
- •6.2.2.Представление исходных данных для gpu
- •6.2.3.Алгоритм расчёта результирующих сил с использованием графического процессора
- •6.2.4.Шейдер для расчёта результирующей силы
- •6.3.Исполнение шейдера из программы мд-моделирования на c#
- •6.3.1.Этапы алгоритма моделирования, исполняемые на cpu
- •6.3.2.Процедуры на c#, обеспечивающие работу с графическим процессором
- •6.4.Постановка граничных условий и стабилизация макросостояния молекулярно-динамической системы
- •6.4.1.Компенсация импульса и момента импульса
- •6.4.2.Стабилизация температуры
- •7.Высокоскоростное моделирование систем с дальнодействием
- •7.1.Актуальность моделирования
- •7.2.Высокоскоростные алгоритмы моделирования систем с дальнодействующими силами
- •7.3.Методика высокоскоростного молекулярно-динамического моделирования диоксида урана
- •7.4.Экспериментальные результаты и их обсуждение
- •7.5.Анализ зависимостей среднего квадрата смещений ионов кислорода от времени
- •8.Восстановление потенциалов межчастичных взаимодействий по температурной зависимости периода решетки методами высокоскоростного мдм на графических процессорах
- •8.1.Задача восстановления потенциалов межчастичных взаимодействий в кристаллах
- •8.2.Исходные данные и метод восстановления потенциалов
- •8.3.Модель и детали реализации
- •9.Базовые особенности программирования графических процессоров шейдерной модели 4.0
- •9.1.Предпосылки появления новой шейдерной модели
- •9.2.Архитектура gpu шейдерной модели 4.0. Преимущества этой модели
- •9.2.1.Иерархия вычислительных блоков и памяти в шейдерной модели 4.0
- •9.2.2.Конвейерная обработка данных на gpu sm4
- •9.2.3.Логическая структура вычислений на gpu sm4
- •9.2.4.Преимущества gpu шейдерной модели 4.0
- •9.3.Средства высокоуровневого программирования gpu шейдерной модели 4.0
- •9.3.1.Совместимость с шейдерной моделью 3.0
- •9.3.2.Специальные средства программирования gpu sm4. Cuda
- •9.3.3.Средства для написания и компиляции программ на cuda
- •9.3.4.Структура программы на cuda
- •9.4.Перемножение матриц на cuda
- •9.4.1.Алгоритм перемножения матриц
- •9.4.2.Процедура перемножения матриц на gpu sm4
- •9.4.3.Вызов процедуры перемножения матриц из программы на c
- •9.5.Молекулярная динамика на cuda
- •9.5.1.Алгоритм с использованием разделяемой памяти
- •9.5.2.Расчёт сил на gpu с использованием 3-го закона Ньютона
- •Библиографический список
- •Приложение 1 Операторы и функции языка hlsl, использованные в курсе лекций п.1.2. Типы данных
2.3.6.Процессоры с многопоточной архитектурой
MTA –Multi Threaded Architecture – многопоточная архитектура. Всерьез о создании такой системы задумалась фирма Terra. В качестве основных особенностей выделялись:
Высокая эффективность распараллеливания начиная с третьего уровня (см. п.2.3.5.).
Простота распараллеливания и переноса программ.
Применять подобные системы планировалось в следующих областях [5]:
задачи моделирования;
автомобильная и аэрокосмическая промышленность;
сейсмический анализ (например, в нефтегазовой промышленности);
трехмерные задачи в системах САПР;
вычислительная химия (в том числе исследования белка, составление лекарств и др.);
задачи национальной безопасности (криптография);
предсказание погоды;
предоставление информации по запросу;
сложные задачи виртуальной реальности;
приложения сверхбольших данных.
Для решения своих задач нашли применение следующие архитектурные особенности. Однородная общая оперативная память. Нет иерархического построения памяти. Отказ от кэш-памяти данных. За счет этого удалось сократить накладные расходы при распараллеливании, т.к. необходимость сопоставления кэшей различных процессоров исчезла сама собой (эта идея была реализована ранее фирмой Hitachi).
Другое преимущество заключается в том, что переключение между задачами после выполнения команды происходит быстро, опять же, без накладных расходов. Это позволяет процессорам быть все время занятыми независимо от задержек оперативной памяти или задержек синхронизации. Для поддержания большой занятости процессоров емкость пула (хранилища) задач сделана больше, чем число доступных аппаратных потоков.
Поток может быть создан и удален без вмешательства операционной системы, с помощью обычных непривилегированных команд. Этим уменьшаются потери на управление потоками.
Зачастую, узким местом становится оперативная память. Однако, MTA допускает обращения к памяти в каждом такте, даже в задачах целочисленной сортировки (в таких задачах основное ограничение накладывает пропускная способность оперативной памяти).
Сердцевиной MTA-компьютера является трехмерная сеть с коммутацией пакетов. Соединение тороидальное (см. рис. 2.2).
К каждому узлу присоединяют ресурсы (процессор и оперативную память). Задержка составляет 3 такта на узел. Максимальная задержка составляет 4,5*(р)1/2, где р – число процессоров. Число устройств памяти в два или в четыре раза больше числа процессоров. Обращения к оперативной памяти распределяются среди всех банков устройств памяти. Такое случайное обращение поддерживает одинаковые величины задержек при обращении к оперативной памяти.
Рис. 2.2. Трехмерный тор [6]
Для фирмы Terra, как не сложно догадаться, была создана Unix-подобная операционная система. В ней использовалась BSD-версия Unix и микроядро, которое было разработано самостоятельно.
2.3.7.Технология Hyper-Threading
В первой половине 2002 года была представлена технология Hyper-Threading на процессоре Intel Xeon. Эта разработка позволяла обрабатывать данные в многопоточном режиме. Команды пересылки данных разбивались на параллельные потоки за счет архитектурного дублирования регистров микропроцессорных схем. Т.е. один процессор мог обрабатывать данные в таком режиме, как работают два процессора со своими потоками команд и наборами данных. Сейчас возможен выпуск полностью многопоточных процессоров, аналогичных архитектуре Terra MTA.