- •Курс лекций
- •Оглавление
- •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.4.Постановка граничных условий и стабилизация макросостояния молекулярно-динамической системы
В настоящем пособии мы рассматриваем только моделирование кристаллов с нулевыми граничными условиями, т.е. – кристаллитов с конечным числом частиц в вакууме. Применение таких граничных условий в идеале не требует для расчёта сил, скоростей и перемещений ионов никаких других уравнений, кроме соотношений -. Однако, накопление вычислительных погрешностей приводит к нарушениям законов сохранения импульса, момента импульса и энергии, что может приводить к появлению движения и вращения кристалла как целого, а также к росту его температуры. Для исключения этих эффектов можно использовать следующие методы.
6.4.1.Компенсация импульса и момента импульса
Импульс модельного кристалла из N частиц даётся формулой
,
где mi – массы частиц, - их скорости до компенсации импульса. Скорость центра инерции кристалла связана с импульсом соотношением
.
Вычитание этой скорости из скоростей всех частиц останавливает собственное движение кристалла:
.
Предположим, что кристалл только вращается как твердое тело вокруг какой-нибудь оси, и больше частицы никуда не движутся (для упрощения выражений). Это вращение характеризуется постоянной угловой скоростью , связанной со скоростями частиц соотношением
.
Здесь - скорости и координаты i-ой частицы. Момент импульса этого кристалла рассчитывается по формуле
,
где N – количество частиц. Двойное векторное произведение можно преобразовать по формуле
,
тогда получится, что
.
Это векторное уравнение эквивалентно системе из трех уравнений для компонент векторов и :
.
Значения компонент векторов с верхними и нижними индексами одинаковы – положение индексов указывает на ко- и контравариантность векторов. Отметим также, что слагаемые вида
для симметричного относительно оси вращения кристалла равны нулю, так что и для реальных кристаллов должны быть близки к нулю.
Таким образом, если для кристалла с произвольными скоростями частиц рассчитан момент импульса , то может быть, решением записанной системы уравнений, получена соответствующая угловая скорость . Если теперь получить новые скорости частиц по формуле
,
то момент импульса кристалла станет равным нулю. При этом изменение самого импульса будет иметь вид
,
где M – масса кристалла, - радиус-вектор центра инерции. Очевидно, что если отсчитывать координаты от центра инерции, то , и импульс не изменится. Кроме того, перед остановкой вращения кристалла нужно обнулить суммарный импульс, тогда ось вращения обязательно будет проходить через центр инерции, что подразумевается в формуле .
6.4.2.Стабилизация температуры
Стабилизация температуры моделируемой системы в принципе может быть необходима по двум причинам:
образование дефектов кристаллической решётки, суперионный переход и плавление требуют энергии, так что в изолированной системе происходит повышение потенциальной энергии за счёт понижения температуры; поэтому, для моделирования кристаллов с постоянной температурой необходим алгоритм стабилизации температуры, моделирующий взаимодействие с термостатом;
опыт показывает, что накопление вычислительной погрешности приводит к медленному, но существенному при больших временах моделирования разогреву кристаллитов; для предотвращения разогрева тоже необходима стабилизация температуры.
Идея стабилизации состоит в том, что в уравнения движения изолированной системы добавляется дополнительное слагаемое, понижающее скорости частиц в случае, если температура системы превосходит заданную и увеличивающее скорости в противоположном случае.
Модификация скоростей производится умножением импульсов на коэффициент p/Q, одинаковый для всех частиц , так что она не приводит к возникновению движения или вращения системы как целого.
Применение стабилизирующей температуру поправки в форме - было предложено Рябовым. Из его работ следует, что в форме - уравнения движения системы соответствуют гамильтониану, совпадающему с выражением для энтальпии H, так что они физически корректно описывают кристаллиты при нулевом (пренебрежимо малом) внешнем давлении и постоянной температуре.
Таким образом, для термостатирования системы с нулевыми граничными условиями можно использовать следующие уравнения движения молекул:
;
;
.
Здесь N – количество частиц в системе; T – требуемая температура; p - дополнительная переменная размерности Джс, связанная с термостатом, Q – величина размерности Джс2, задающая частоту колебаний температуры; индекс не имеет самостоятельного значения, он только показывает, что p - переменная, относящаяся к стабилизации температуры.
В начале моделирования можно принять, что p = 0. На последующих шагах моделирования эта величина изменяется по формуле
.
Значение константы Q в принципе произвольно, однако этим значением определяются период и амплитуда колебаний задаваемой температуры. Оценить необходимое значение Q можно из следующих соображений.
Из-за слагаемого, соответствующего термостату, к скоростям частиц добавляется поправка
.
Если домножить обе части уравнения на и просуммировать по всем i, то получится, что
,
где E – удвоенная кинетическая энергия системы. Её требуемое значение как раз и равно 3NkT. Учтём то, что
и то, что, в соответствии с формулами и ,
.
Таким образом, временная зависимость отклонения величины E от 3NkT даётся уравнением
.
Можно переписать уравнение в приближённой форме, считая, что E 3NkT; это верно, если температура колеблется не сильно. Кроме того, вводим новую переменную
,
причём
.
Теперь, дифференцируя обе части уравнения по времени, в приближении E 3NkT получаем
.
Это – уравнение гармонических колебаний с циклической частотой
,
откуда
,
где - период колебаний.
Выражение позволяет выбирать значение Q, исходя из требований, предъявляемых к периоду колебаний. Например так, чтобы период колебаний был существенно меньшим, чем время моделирования.