Метод классической молекулярной динамики

реклама
Особенности GPU реализации
многочастичных потенциалов
межатомного взаимодействия
А.А. Книжник,
А.С. Минкин,
Б.В. Потапкин
НИЦ «Курчатовский институт»
Москва 2012
Преимущества GPU
• Большое число вычислительных ядер, меньше
транзисторов на управление и кэш.
• RISC архитектура на уровне инструкций.
• Большое число работающих нитей позволяет скрывать
латентность доступа к глобальной памяти.
• Низколатентная локальная память(16Кб на SM), к которой
программист имеет непосредственный доступ, позволяет
повысить производительность за счёт меньшего числа
обращений к глобальной памяти.
• Высокая производительность/$.
• Высокая производительность/ватт.
Объект исследования

Модуль Юнга:
YStainless steel = 210 ГПа
YSWNT(5,5)= 1140 ГПа
YSWNT/YStainless steel ~ 10

Коэффициент
теплопроводности:
KCopper= 401 Вт/(м∙К)
KSWNT(10,10)= 2980 Вт/(м∙К)
KSWNT/KCopper ~ 10
Метод классической
молекулярной динамики
dv
a
dt
dr
v
dt
ma  F
U
Fl  
rl
2
3kT

,v 
mv
m
r – координата,
m – масса атома,
v – скорость атома,
Т – температура.
Углерод :
  0.4
b  1.4 
 b
Схема интегрирования.
Скоростной алгоритм Верле
Схема Верле, этап 1
r (t  t )  r (t )  v(t )t  0.5  a(t )t 2
vt  0.5  t   v(t )  0.5  a(t )t
Схема Верле, этап 2
at  t   U (r (t  t )) / m
vt  t   v(t  0.5  t )  0.5  a(t  t )t
Метод молекулярной динамики
Основные этапы
Молекулярная
динамика
Вычисление
сил
Вычисление
списка соседей
Интегрирование
уравнений
движения
Вычисление
производных
характеристик
В случае короткодействующих потенциалов пространство
моделирования состоит из независимых фрагментов, что даёт
возможность построения параллельный реализации
Потенциал Леннарда-Джонса
Взаимодействие двух частиц зависит только от их
взаимного расположения. Полная энергия – сумма
парных взаимодействий.
1 N N
U (r1 , r2 ,..., rN )     (rij )
2 i 1 j 1 ( j i )
 
 
  12  6 

rij  0, rij  Rc


 



 rij  4 






f rij  0, rij  Rc
r
r
  ij 

ij
  

14
8

   
    
f rij  48 2
 0.5    rij
r  
   rij 
ij 



 
 
Многочастичные потенциалы взаимодействия.
Потенциал погруженного атома
Многочастичные потенциалы позволяют правильно
воспроизвести:
1. энергию образования вакансии,
2. упругие свойства кристаллов (например,
c11/c44=1.5 для Cu),
3. зависимость связи от направления,
Общая форма:
Потенциал погруженного атома
Потенциал Терсоффа

1 
pair
mb

U    0.5U ij rij   U i 
2 i 
j i

U ijpair rij   VR rij  U imb  0.5 bijVA rij 
   


V A rij   f ij rij Bij exp  2,ij rij 
b  1    
   G   f r exp  r
VR rij  f ij rij Aij exp  1,ij rij
n
ij
ij
k ( i , j )
i
1
n  2n
ij
ijk
ik
ik
m
3,ijk
j i
ij  rik 
m
Порядок связи
Суммы по группам из
трех атомов с учётом
образуемых ими углов.

Функция
обрезания
 c2

c2


Gi ijk   ijk 1  2  2
2
d


d

cos


cos

0


1, если rik  R  D,

1 
  r  R   
f ik rik    1  sin 
, если R  D  rik  R  D,


 2D 
2 
0, если rik  R  D,

OpenCL
• Поддержка большого набора устройств и архитектур:
NVIDIA GPUs, ATI GPUs, Cell BE, x86, ARM
(Mali T604,T658), Qualcomm APQ8064/Adreno 320,
PowerVR (SGX544) и другие embedded процессоры.
• Возможность совместного использования OpenCL
кода в гетерогенных CPU/GPU вычислениях.
• Кроссплатформенность.
• Возможность использовать средства отладки:
– AMDgDEBugger and Intel SDK for OpenCL –
Debugger.
– OpenCL Emu с AMD APP SDK.
– cl_amd_printf and cl_intel_printf debug extensions.
– cudagdb.
Потенциал Терсоффа.
Алгоритм I (с атомарными операциями)
N атомов, N GPU потоков!
Fi  Fi  
j
  1
VR rij
ri
bij

2
j
 
  1
VA rij
bij

2
r
ri
j ,k
i
 
VA rij ,
bij
ri
 p( ij ) 
VA rij 1 bij
bij
 ij
1
F j  F j   bij
 
VA rij ,
 p( ij ) 
2 j
r j
2 j ,k r j
r j
r j
 
bij
 ij
1 bij
Fk  Fk  
VA rij ,
 p( ij ) 
2 j ,k rk
rk
rk
 

p( ij )  0.5  1   ij 
   / 
1
n  2 n 1
n
ij
ij
 ij
ri
Атомарные операции
k1
Пример реализации :
i1
i1
j2
j1
i1 =j2
int waiting = 1;
j1 =k2
while (waiting)
{
if (!atom_xchg(&semaphor[k], 1))
{
accel[k].x += (1./mmk) * prefactor * z_sh_ij_sum.x ;
accel[k] .y += (1./mmk) * prefactor * z_sh_ij_sum.y;
accel[k] .z += (1./mmk) * prefactor * z_sh_ij_sum.z;
atom_xchg(&semaphor[k], 0);
waiting = 0;
}
}
k2
i2
i2
Потенциал Терсоффа.
Алгоритм II (без атомарных операций)
N атомов, N GPU потоков!
1  Eij E ji
Fi    

2 j  i ri
ri
E jk
 1
 

 2 j  i , k  i ri
Eij VR rij
VA rij bij
bij
 ij

 bij

VA rij
 p( ij ) 
ri
ri
ri
ri
ri
ri
 
E ji
ri
E jk
ri

VR rij 

ri
b jk
ri
 
 
b ji
 ji
VA rij  b ji
 b ji

VA rij 
 p( ji ) 
ri
ri
ri
ri
VA rjk 
b jk
ri
 p( jk ) 
 jk
ri
Потенциал погруженного атома.
Алгоритм I (с атомарными операциями)


1
pair
U i  U ij rij   Ei   c j rij 
2 j i
 j i

pair
1  Ei c j (rij ) U ij (rij ) 
Fi  Fi  



2 j i   i ri
ri

pair


c
(
r
)

U
(rij ) 
1  Ei j ij
ij

Fj  Fj 


2  i r j
ri

U  U i
i
Атомарные
операции
Потенциал погруженного атома.
Алгоритм II (без атомарных операций)
 
 E j c E c j 1 U ijpair rij 
i 
i

Fi    



 j ri 2
ri
j  i  i ri

U  U i
i
Вычисления внутри
потока


1
pair
U i  U ij rij   Ei   c j rij 
2 j i
 j i

Производительность алгоритмов
с атомарными операциями
Отношение \ число атомов
1000
2000
4000
8000
1600
0
Tersoff, Алгоритм II / Алгоритм I
EAM, Алгоритм II / Алгоритм I
9.67
9.62
10.42
10.68
11.94
0.51
0.48
0.47
0.48
0.49
Оценка ускорения OpenCL алгоритмов
GPU – NVidia GeForce GTX 470, CPU – Core i5 760 (4 cores)
Использование GPU – эффективный способ ускорения вычисления
многочастичных потенциалов межатомного взаимодействия, обладающих
большей вычислительной сложностью по сравнению с парными.
Оценка ускорения OpenCL алгоритмов
GPU – NVidia GeForce GTX 470, CPU – Core i5 760 (4 cores)
Использование GPU – эффективный способ ускорения вычисления
многочастичных потенциалов межатомного взаимодействия, обладающих
большей вычислительной сложностью по сравнению с парными.
Выводы
• Алгоритмы молекулярной динамики могут быть
эффективно реализованы на графических
процессорах.
• Графические процессоры позволяют получить
значительное ускорение вычисления парных и
многочастичных потенциалов межатомного
взаимодействия.
• Атомарные операции с глобальной памятью не всегда
приводят к замедлению вычисления конечного
результата.
• OpenCL является эффективной технологией
программирования графических процессоров и
реализации алгоритмов атомистического
моделирования на основе молекулярной динамики.
Работа проводилась при финансовой
поддержке Министерства образования и
науки Российской Федерации, в рамках ГК
№ 07.514.11.4002
Спасибо за внимание
Скачать