
- •Курс лекций
- •Оглавление
- •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. Типы данных
7.4.Экспериментальные результаты и их обсуждение
Разработанный программно-аппаратный комплекс, реализующий технологию поточно-параллельных вычислений, позволил ускорить время расчетов на порядок по сравнению со специально оптимизированными версиями программ молекулярной динамики, использующими SIMD-технологии (SSE, 3Dnow!), и на два порядка по сравнению с простейшими реализациями из других работ [34] (табл. 7.2).
На его базе проводилось моделирование кристаллов UO2 с различным числом частиц (от 2592 до 20736). Рассчитаны коэффициенты диффузии собственных ионов (в том числе, для малоподвижного урана, процессы переноса которого методом молекулярной динамики практически не исследованы) в широком диапазоне температур, включающем все три состояния: кристалл, суперионное состояние и расплав. В результате моделирования удалось воспроизвести соответствующие фазовые переходы (суперионный и плавление) и рассчитать энергии активации диффузии для разных фазовых состояний.
С использованием новой методики стало доступно моделирование систем порядка 104 частиц на временах наблюдения порядка 106~108 шагов, что позволило обнаружить скачок коэффициента диффузии кислорода при суперионном переходе (рис. 7.5), полученные результаты находятся в согласии с имеющимися экспериментальными данными [35] и другими работами по молекулярно-динамическому моделированию [36] в пределах погрешностей эксперимента: энергия активации диффузии в кристаллической фазе составила 2.77350.2 эВ, а после суперионного перехода понизилась до 1.68230.2 эВ.
Таблица 7.2.
Сравнение скорости расчетов на кристалле из 6144 ионов
Программно-аппаратная реализация молекулярной динамики |
Время, затрачиваемое на расчет |
||
1 шаг (сек) |
100.000 шагов (часы) |
1.000.000 шагов (сутки) |
|
* Простейшая реализация из работы [34] (Delphi) |
15 |
416,7 |
173,6 |
* SIMD реализации авторов (С++, SSE, 3Dnow) и (С#, .NET) |
1 и 1,2 |
27,8 и 33,3 |
11,6 и 13,9 |
MPI распараллеленная реализация авторов (кластер) |
0,192 |
5,3 |
2,2 |
* поточно-параллельная реализация авторов (С#, asm) |
0,115 |
3,2 |
1,3 |
* все расчеты проводились на аппаратной базе рабочей станции – AMD Athlon1700+, 512 DDR PC3200, Nvidia nForce2 Ultra, Nvidia GeForce6600GT; кроме MPI версии, которая запускалась на кластере из 16 процессоров AMD Opteron.
7.5.Анализ зависимостей среднего квадрата смещений ионов кислорода от времени
Значения коэффициентов диффузии ионов урана и кислорода в модельных кристаллах при заданной температуре T, в соответствии с формулой , определяли по наклону зависимостей среднего квадрата смещений ионов от времени:
.
Проведенные расчеты показали, что при временах моделирования, порядка и бόльших 100 тыс. шагов 5∙1015 c (возрастающих с понижением температуры), зависимости <r2> от времени как для ионов кислорода, так и для ионов урана действительно в среднем выходят на прямые d<r2>/dt = Const, что подтверждает корректность определения коэффициентов диффузии.
Рис. 7.5. Характерная зависимость среднего квадрата смещений ионов кислорода от времени моделирования.
По вертикальной оси отложен средний квадрат смещений <r2>, умноженный на количество внутренних ионов O2-, по которым проводилось усреднение, так что высоты ступенек численно равны суммам квадратов перемещений ионов в новые равновесные позиции. A – зависимость <r2> от времени, полученная в численном эксперименте; B – прямая, наклон которой дает коэффициент самодиффузии кислорода при больших временах моделирования; 1 - 13 – ступеньки, соответствующие конкретным перемещениям ионов.
С другой стороны, оказалось, что при температурах, достаточно низких по сравнению с температурой плавления, начальные участки зависимостей <r2> от времени для ионов кислорода имеют ступенчатый характер, отслеживающий образование и перемещение единичных дефектов анионной подрешетки. Анализ ступенек позволил нам подтвердить диффузионный характер перемещения ионов, а также сделать некоторые выводы о механизмах собственного разупорядочения модельных кристаллов диоксида урана.
Характерная для сравнительно низких температур зависимость среднего квадрата смещения внутренних ионов кислорода в модельных кристаллитах от времени показана на рис. 7.5. Как отмечено выше, при обработке ступенек на этой и других аналогичных зависимостях мы считали, что каждая ступенька обусловлена перемещением одного или нескольких ионов кислорода из некоторых равновесных позиций в новые равновесные позиции, такие, из которых ионы не совершают дальнейших прыжков в течение временных интервалов, больших по сравнению с длиной ступеньки. Называть эти позиции равновесными возможно потому, что длины ступенек на порядки превышают времена гармонических колебаний ионов (около 10-13с., т.е., 20-ти шагов).
Для количественного анализа ступенек, мы сравнивали их высоты (нормированные, как показано на рис. 7.5) с квадратами переходов между равновесными позициями в анионной подрешетке диоксида урана, которая имеет простую кубическую структуру. Самые короткие из таких переходов показаны на рис. 7.6, их длины в единицах периода решетки приведены в табл. 7.3.
Как видно из рис. 7.6 и табл. 7.3, структура анионной подрешетки диоксида урана такова, что минимальные расстояния между соседними равновесными позициями ионов кислорода равны половине периода решетки (0.5a), а квадраты этих – расстояний r2=0.25a2. Расчеты показали, что минимальные достоверно разрешимые ступеньки действительно имеют высоты (0.250.35)a2 (например, ступенька № 8 на рис. 7.5), которые могут соответствовать переходам анионов кислорода в соседний вакантный узел (переход 1 на рис. 7.6).
Следующие по размерам ступеньки (№ 1,3 на рис. 7.5) имеют высоты около 0.5a2 и могут соответствовать переходам ионов в вакантные позиции по диагоналям граней кислородной подрешетки (переход 2 на рис. 7.6), либо обменам позициями вдоль ребра между соседними ионами (парный переход 1 на рис. 7.6).
Далее, на на графике (рис. 7.5) есть ступеньки, имеющие высоты 1.05a2, 1.09a2 (№5,7 на рис. 7.5 и в табл. 7.5), которые могут соответствовать обмену позициями между соседними ионами по диагонали грани, либо четырем последовательным скачкам анионной вакансии вдоль ребер (что равносильно двум скачкам по диагоналям граней).
Образование устойчивых анионных вакансий было бы невозможно без перехода некоторых анионов в устойчивые междоузельные позиции (переходы 5,6). Таким переходам на рис. 7.5 могут соответствовать ступеньки №2,11, высотой 1.22a2 и 0.70a2.
На графике сравнительно низкие ступеньки, рассмотренные выше, чередуются со высокими, в несколько раз превосходящими a2. Можно предположить, что высокие ступеньки обусловлены быстрым перемещением высокоподвижных вакансий сразу на несколько позиций, до рекомбинации с междоузельным ионом, либо сложным коллективным движением нескольких ионов.
Рис. 7.6. Возможные диффузионные перемещения ионов кислорода в UO2. Показан фрагмент анионной плоскости системы [001]. Int – междоузельные позиции; эти позиции расположены в одной плоскости с катионами U4+, на 0.25∙a «выше», чем анионная плоскость. Квадраты длин переходов в единицах периода решетки a, под указанными номерами 1-5, приведены в табл. 7.3.
Таблица 7.3
Возможные диффузионные перемещения ионов кислорода в UO2
№ |
Перемещение |
(N∙<r2>), a2 |
1 |
Переход иона в соседний вакантный узел Обмен позициями между соседними ионами |
0.250 0.500 |
2 |
Переход иона в соседний вакантный узел Обмен позициями между соседними ионами |
0.500 1.000 |
3 |
Переход иона в соседний вакантный узел Обмен позициями между соседними ионами |
0.750 1.500 |
4 |
Переход в ближайшую междоузельную позицию *) |
0.188 |
5 |
Переход в удаленную междоузельную позицию |
0.688 |
6 |
Переход в удаленную междоузельную позицию |
1.188 |
*) Переход в ближайшую междоузельную позицию неустойчив, поскольку ион может легко вернуться обратно |
Таблица 7.4
Высоты ступенек, полученных численным экспериментом при T = 2000K
№ |
(N∙<r2>), a2 |
№ |
(N∙<r2>), a2 |
1 |
0.57 |
7 |
1.05 |
2 |
1.22 |
8 |
0.26 |
3 |
0.57 |
9 |
3.80 |
4 |
2.75 |
10 |
3.01 |
5 |
1.09 |
11 |
0.70 |
6 |
3.10 |
12 |
2.71 |
С увеличением времени моделирования склоны ступенек из вертикальных становятся диагональными, а сами ступеньки постепенно выравниваются по высоте и сливаются в наклонную прямую. Этот процесс можно объяснить установлением равновесной (и неизменной) концентрации дефектов, обеспечивающих постоянный коэффициент диффузии. Видно, что при температурах, порядка и меньших 2500 K, равновесие наступает после нескольких сотен тысяч шагов, что показывает необходимость больших времен моделирования.