- •Курс лекций
- •Оглавление
- •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.4.Требования к памяти высокопроизводительных эвм
Исходя из задач, решаемых суперЭВМ, требования к памяти не только выше, чем у обычных ЭВМ, но их еще и больше. Т.к. приложения для высокопроизводительных ЭВМ должны работать с большим количеством данных, охватывать большой объем ресурсов, обработка происходит длительное время (это связано с длительным циклом обработки), то память должна отвечать следующим критериям:
Иметь максимальный объем памяти.
Обеспечивать возможность асинхронного ввода-вывода.
Иметь возможность организовать массивное хранилище данных.
Обеспечивать высокоскоростной ввод-вывод.
Иметь возможность передачи данных удаленным системам.
Преобразовывать данные для различных технических средств.
2.5.Коммуникационная сеть высокопроизводительных эвм
Одним из важнейших элементов архитектуры высокопроизводительных ЭВМ является коммуникационная сеть. Благодаря ей можно связать процессоры между собой, с памятью и другими устройствами. Существуют две основные топологии сетей – статические и динамические.
Как только к сетевым устройствам был добавлен переключатель, появилась возможность организовывать многокаскадные сети.
2.5.1.Статические и динамические топологии и маршрутизация коммуникационных систем
Основным отличием статических топологий от динамических является то, что все соединения в такой сети фиксированы. У динамических топологий в межпроцессорных соединениях используются переключатели. Говоря о топологиях вообще (о локальных сетях) можно выделить следующие (см. рис.2.3.):
Шина (1) – обмен происходит через единственную шину. Она, как правило становится узким местом.
Звезда(2) – обмен информацией идет через концентратор.
Кольцо(3) – информация запускается в кольцо и циркулирует по нему до тех пор, пока не придет к нужному адресату (сигнал идет в одном направлении).
Многокаскадные и многосвязные сети (они являются комбинацией предыдущих).
Рис. 2.3. Сетевые топологии [7]
Рассмотрим случай, когда узлы соединены в по схеме на рис.2.3. Для выбора маршрута передачи данных необходимо выполнить смещение по оси X, затем –Y и в конце – Z. Сетевые маршрутизаторы (аппаратное устройство, находящееся в месте соединения коммуникационных линий, направляющее пакет данных) должны определять путь перемещения пакета данных. Для удобства, каждому узлу присваивают уникальный физический номер, который определяет его положение. Вполне возможен случай, что несколько узлов будут держаться в резерве (так было сделано с компьютером CRAY T3D).
2.5.2.Многокаскадные сети и методы коммутации
Основой многокаскадных систем (возможные соединения показаны на рис. 2.4, 2.5), как было сказано ранее, являются переключатели (коммутаторы). Они помещаются между процессорами или другими узлами. При передаче информации переключатели устанавливаются таким образом, чтобы получилось необходимое соединение. В принципе, возможен вариант, когда один из маршрутов заблокирует все остальные маршруты. Это может иметь неблагоприятные последствия, но иногда такую возможность вносят специально. Чтобы связать все элементы между собой, необходимо построить матричный коммутатор (например, использовать топологию «звезда»). При такой реализации любой из процессоров может обратиться к любому модулю памяти. Может возникнуть конфликт, когда несколько процессоров обратятся к одному модулю памяти (вот тут на помощь может прийти система блокировки). При расширении сети ощутимо возрастает число переключателей. Очевидно, что для системы из N процессоров и N модулей памяти необходимо 2N переключателей.
Рис. 2.4. Возможные связи в коммуникационных сетях.
А – каждый узел соединен с каждым, Б – смешанная система,
В – иерархическая система связи [7]
Рис. 2.5. Возможные топологии в современных вычислительных системах.
А – решетка, Б – гипердерево, В – куб [7]