- •Курс лекций
- •Оглавление
- •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. Типы данных
9. Базовые особенности программирования графических процессоров шейдерной модели 4.0 160
9.1. Предпосылки появления новой шейдерной модели 160
9.2. Архитектура GPU шейдерной модели 4.0. Преимущества этой модели 161
9.2.1. Иерархия вычислительных блоков и памяти в шейдерной модели 4.0 162
9.2.2. Конвейерная обработка данных на GPU SM4 164
9.2.3. Логическая структура вычислений на GPU SM4 165
9.2.4. Преимущества GPU шейдерной модели 4.0 165
9.3. Средства высокоуровневого программирования GPU шейдерной модели 4.0 166
9.3.1. Совместимость с шейдерной моделью 3.0 166
9.3.2. Специальные средства программирования GPU SM4. CUDA 167
9.3.3. Средства для написания и компиляции программ на CUDA 168
9.3.4. Структура программы на CUDA 169
9.4. Перемножение матриц на CUDA 169
9.4.1. Алгоритм перемножения матриц 169
9.4.2. Процедура перемножения матриц на GPU SM4 172
9.4.3. Вызов процедуры перемножения матриц из программы на C 177
9.5. Молекулярная динамика на CUDA 178
9.5.1. Алгоритм с использованием разделяемой памяти 178
9.5.2. Расчёт сил на GPU с использованием 3-го закона Ньютона 178
Библиографический список 183
Приложение 1 Операторы и функции языка HLSL, использованные в курсе лекций 188
П.1.2. Типы данных 188
П.1.2. Встроенные функции 188
П.1.3. Другие операторы и выражения 188
П.1.4. Системные переменные 189
Приложение 2 Процедуры CUDA, исполняемые на CPU 190
Введение
Рост объема вычислений, связанный с усложнением задач, решаемых с помощью ЭВМ в военной, технологической, научной и финансовой областях, привел к созданию мощных суперкомпьютеров и их более дешевых заменителей, многопроцессорных вычислительных комплексов – суперкластеров.
Несмотря на меньшую стоимость высокопроизводительные суперкластеры все еще достаточно дороги, занимают достаточно много места и имеют большой вес.
Так, например, 40-ядерный кластер, обеспечивающий при идеальном распараллеливании ускорение расчетов не более чем в 40 раз, требует для установки отдельную комнату, персонал для обслуживания и стоит порядка 2-млн. рублей.
Представляется перспективной разработка высокопроизводительных персональных ЭВМ разных классов, базирующихся на применении в качестве основных процессоров – графических процессоров. Последнее, как позволяет заключить имеющийся опыт, позволит в существенной мере (на порядки) минимизировать недостатки суперкластеров, сохранив, а в отдельных случаях и превысив их производительность.
Первые две лекции данного конспекта посвящены описанию архитектуры и принципов работы обычных ЭВМ. Последнее сделано для того, чтобы в дальнейшем материале можно было более четко акцентировать все последующие шаги по повышению их производительности.
Во втором разделе, включающем три лекции, изложены методы повышения производительности обычных ЭВМ, обеспечивающие эффективность работы высокопроизводительных ЭВМ. Последние к настоящему времени образуют отдельную отрасль, в которой разрабатывают и создают ЭВМ для решения сложных задач с большим потоком данных и сложными арифметическими операциями. Используют эти суперкомпьютеры в самых разных областях науки – от обработки статистики по чрезвычайным ситуациям во всей стране, до расчета сложнейших уравнений химических реакций. От обычных высокопроизводительные ЭВМ отличают большие на порядок (и более) объем памяти, быстродействие и прочие характеристики, существенные для выполняемых операций. Подобные компьютерные гиганты по карману далеко не всем исследовательским центрам. Поэтому сейчас высокопроизводительную ЭВМ вполне можно создать из нескольких обычных ЭВМ, объединив их в сеть.
В третьей части (в рамках одной лекции) проанализированы типы архитектур высокопроизводительных вычислительных систем, показано, что решение вопроса разработки высокопроизводительной и экономной ЭВМ может быть достигнуто за счет использования графических процессоров.
Основная часть материала лекций посвящена относительно новому методу высокоскоростного программирования на графических процессорах и проведению моделирования физических процессов в реакторных материалах с помощью указанных процессоров.
Этот раздел включает описание принципов работы графических процессоров, приемов их программирования. В нем достаточно подробно изложено описание взаимодействия графического и центрального процессоров, приведены конкретные примеры составления общей программы.
Особое внимание в этом разделе уделено программированию задачи моделирования методом молекулярной динамики кристаллов диоксида урана. Рассмотрены задачи восстановления потенциалов межчастичных взаимодействий по температурной зависимости периода решетки кристалла, получении коэффициентов диффузии кислорода по временной зависимости среднеквадратичных смещений по анализу механизмов диффузии кислорода в диоксиде урана.
Закрепление знаний, получаемых после чтения курса, предполагает выполнение ряда практических занятий, для которых имеется учебное пособие.