- •Курс лекций
- •Оглавление
- •1. Архитектура и принципы работы обычных эвм с центральным процессором (cpu) 9
- •2. Методы повышения производительности традиционных эвм 27
- •3. Типы архитектур высокопроизводительных вычислительных систем 45
- •8. Восстановление потенциалов межчастичных взаимодействий по температурной зависимости периода решетки методами высокоскоростного мдм на графических процессорах 145
- •4. Потоковые параллельные вычисления для физического моделирования 62
- •5. Применение графических процессоров на примерах сложения матриц и решения дифференциальных уравнений 82
- •6. Молекулярная динамика на графическом процессоре 100
- •7. Высокоскоростное моделирование систем с дальнодействием 125
- •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.4.Перемножение матриц на cuda
- •9.4.1.Алгоритм перемножения матриц
- •9.3.3.Средства для написания и компиляции программ на cuda
- •9.3.4.Структура программы на cuda
- •9.4.2.Процедура перемножения матриц на gpu sm4
- •9.4.3.Вызов процедуры перемножения матриц из программы на c
- •9.5.Молекулярная динамика на cuda
- •9.5.1.Алгоритм с использованием разделяемой памяти
- •9.5.2.Расчёт сил на gpu с использованием 3-го закона Ньютона
- •Библиографический список
- •Приложение 1 Операторы и функции языка hlsl, использованные в курсе лекций п.1.2. Типы данных
7.3.Методика высокоскоростного молекулярно-динамического моделирования диоксида урана
Для получения феноменологических характеристик кинетических процессов в вычислительных экспериментах необходимо длительное моделирование на системах с числом частиц, достаточно большим для получения статистической картины. Например, количество диффузионных прыжков при постоянной температуре прямо пропорционально количеству наблюдаемых частиц и времени наблюдения, однако, вычислительная нагрузка при моделировании систем с дальнодействием нарастает квадратично с увеличением числа частиц и линейно с увеличением времени моделирования, поэтому в таких исследованиях выгоднее увеличивать время наблюдения, а не число частиц. А значит важно добиться наименьших вычислительных затрат на один шаг времени.
Практика показала, что для моделирования диффузионных процессов достаточным является размер системы порядка 104 частиц. В частности, коэффициенты диффузии в системах с различными размерами в диапазоне 6144–20736 ионов отличались в пределах нескольких процентов. В результате экспериментального сравнения быстродействия различных подходов (прямой расчет, Ewald, PME, P3M, TreeCode, FMM) для систем такого размера выбор был сделан в пользу распараллеленного прямого расчета. Моделирование проводилось на специально разработанном программно-аппаратном комплексе на базе стандартной однопроцессорной рабочей станции (AMD Athlon1700+, 512 DDR pc3200, Nvidia nForce2 Ultra, Nvidia GeForce 6600GT), реализующем технологию поточно-параллельных вычислений. Динамика системы отображалась в реальном времени без ущерба производительности благодаря использованию аппаратного ускорения трехмерной графики с помощью технологии Microsoft Direct3D.
В качестве исходного приближения использовалась модель ионного кристалла, как с целочисленными, так и с дробными зарядами ионов. Взаимодействие между ионами описывали парными потенциалами взаимодействия вида:
Здесь первый член описывает электростатическое кулоновское взаимодействие ионов, а второй и третий – силы отталкивания и дисперсионное притяжение электронных оболочек.
Таблица 7.1.
Параметры некулоновского потенциала для UO2 [33]
Параметр потенциала |
A, эВ |
B, Å |
С, эВÅ-6 |
U-O |
873.32735 |
2.477148 |
0 |
O-O |
50259.33984 |
6.542362 |
72.65339 |
В качестве параметров исходного некулоновского потенциала использовали данные из работы [33], модель “жестких” ионов (с целочисленными зарядами). Для дальнейшего улучшения свойств выбранного потенциала проводили уменьшение зарядов ионов до тех пор, пока значение параметра решетки диоксида урана при комнатной температуре 300К не стало близким к экспериментальному, 5.47Å. Полученные таким образом значения заряда составили: для кислорода (-1.9085е), для урана (+3.817е).
Уравнения движения молекулярной динамики интегрировали конечно-разностным методом второго порядка точности – semi implicit Euler, в котором, в отличие от обычного метода Эйлера, расчет скоростей и позиций происходит не «одновременно», а «последовательно» – сначала, интегрируя силы, получают «новые» скорости, а затем на их основе вычисляют «новые» позиции:
vi(t+Δt/2) = vi(tΔt/2) + Δt∙Fi(t)/mi
ri(t+Δt) = ri(t) + Δt∙vi(t+Δt/2)
Величину временного шага Δt варьировали в диапазоне от 3·10‑15с до 6·10‑15с.
Моделирование проводили в нулевых граничных условиях (НГУ). В вакууме формировали кубический нанокристалл, содержащий различное (от 2592 до 20736) число ионов, таким образом, чтобы его электростатический дипольный момент был минимальным. При этом кристалл в виде куба с ребром в K элементарных ячеек разбивали на три зоны: внешнюю (поверхность), промежуточную, с толщиной в одну элементарную ячейку каждая, а также внутреннюю, в виде куба с ребром в (K–4) элементарных ячейки. Динамические и структурные характеристики для каждой из них можно исследовать независимо. В частности, нанокристалл из 6144 ионов (K = 8) содержит: 768 частиц во внутренней, 1824 в промежуточной и 3552 во внешней областях. Для уменьшения влияния поверхности на расчеты объемных параметров последние рассчитывались только во внутренней зоне кристалла.
Коэффициенты диффузии ионов при заданной температуре рассчитывали по формуле Эйнштейна через зависимость среднеквадратичного смещения частиц <Δr2> от времени t:
D = <Δr2> / 6t
Среднеквадратичные смещения ионов рассчитывали следующим образом:
Здесь на шаге времени t идет суммирование по всем частицам сорта S квадратов смещений их текущих позиций относительно начальных.
