- •Курс лекций
- •Оглавление
- •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. Типы данных
6.Молекулярная динамика на графическом процессоре
6.1.Принципы моделирования ионных кристаллов методом молекулярной динамики
Простейший алгоритм программы, реализующей моделирование ионных кристаллов (или других физических систем) методом молекулярной динамики, может быть представлен в форме, показанной на рис. 6.1.
Рис. 6.1. Блок-схема алгоритма молекулярной динамики
Заключается этот алгоритм в том, кристалл представляется системой недеформируемых, положительных и отрицательных, ионов, эволюционирующей во времени. Ионы перемещаются по законам Ньютона, а силы взаимодействия определяются парными потенциалами Uij(Rij).
Потенциалы Uij(Rij) имеют общий вид
,
где Qi, Qi, - заряды i-го и j-го ионов, Rij – расстояние между этими ионами, KE – константа закона Кулона, - некулоновский потенциал взаимодействия электроновских оболочек.
Потенциалы представляют в различных формах, обычно включающих в себя слагаемые, моделирующие отталкивание перекрывающихся электронных оболочек на малых расстояниях и дисперсионное притяжение на сравнительно больших. Наиболее известными из этих форм являются потенциал Букингема
и потенциал Леннарда-Джонса
.
В формуле А и В – константы, характеризующие отталкивание оболочек, С6, С8 – константы, описывающие дипольную и квадрупольную составляющие дисперсионного притяжения. В формуле - глубина минимума потенциала, а - положение его нуля.
Перед началом расчёта ионам присваиваются некоторые начальные координаты и скорости (например - координаты, соответствующие узлам идеальной кристаллической решётки моделируемого соединения и скорости, соответствующие Максвелловскому распределению при заданной температуре), после чего начинается численное пошаговое интегрирование уравнений движения ионов во времени. На каждом k-ом шаге производятся следующие действия:
Рассчитываются действующие на каждый ион силы
;
Вычисляются новые скорости и новые координаты ионов
.
Формулы - справедливы при нулевых граничных условиях (конечный кристаллит из N частиц в вакууме) без компенсации перемещения, вращения и дрейфа температуры, возникающих из-за вычислительных погрешностей (алгоритмы компенсации приведены ниже). Однако этих формул достаточно, чтобы показать возможность эффективного распараллеливания по схеме SIMD: очевидно, что основные этапы алгоритма заключаются в проведении над каждым из ионов поочерёдно одних и тех же операций.
Наиболее критичным участком алгоритма является расчёт результирующих сил, действующих на каждый из ионов со стороны остальных. Этот расчёт необходим на каждом шаге молекулярной динамики, а его объём квадратичен по количеству частиц N, так как для каждой из N частиц необходимо выполнить суммирование сил, действующих со стороны N-1 остальных:
.
Поскольку для реалистичного моделирования модельные кристаллиты должны содержать десятки и сотни тысяч ионов, объём расчёта очень велик по сравнению с расчётами на остальных этапах алгоритма. Именно этот расчёт имеет смысл в первую очередь реализовать на графических процессорах. Нам такая реализация позволила на порядки ускорить молекулярно-динамическое моделирование ионных кристаллов (диоксида урана).