CUDA Treecode in Python App for Biomolecular Electrostatics | GTC ...
CUDA Treecode in Python App for Biomolecular Electrostatics | GTC ...
CUDA Treecode in Python App for Biomolecular Electrostatics | GTC ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
entity Standardst.<strong>GTC</strong> 2013<strong>CUDA</strong> treecode <strong>in</strong> a <strong>Python</strong> application <strong>for</strong>biomolecular electrostaticsIntroductionImportance of an IdentityIdentity Plat<strong>for</strong>mBrand PersonalityLorena A. BarbaChristopher CooperTerm<strong>in</strong>ologyDepartment of Mechanical Eng<strong>in</strong>eer<strong>in</strong>g, Boston Universityhttp://barbagroup.bu.edu05Boston University College of Arts & Sciences
Motivation1) Biologists don’t want to hack.2) ey don’t want to use supercomputers.3) Still, runtimes should be reasonable.
<strong>Biomolecular</strong> <strong>Electrostatics</strong>:e model & the discretization.
Implicit solvent modelr 2 1(r) = X iq i✏ 1(r, r i ) <strong>in</strong> solute (⌦ 1 )r 2 2(r) =apple 2 2(r) <strong>in</strong> solvent (⌦ 2 )1 = 2 on <strong>in</strong>terface,@ 1✏ 1@n = ✏ @ 22@nq 1✏ 1q 2 I✏II2I1 @2 (r) 1 1@n (r0 )4⇡|r r 0 | d 0 +I12 (r)+✏ 2 @ 1✏ 1 @n (r0 ) e apple|r r0 |I4⇡|r r 0 | d 0I@@n@@napple14⇡|r r 0 |" #e apple|r r0 |4⇡|r r 0 |1(r 0 )d 0 =1(r 0 )d 0 =0XN ci=0q i 1✏ 1 4⇡|r r i |5
BEM discretization12 ⇥ 1(r i )N p⇤j=1⌅⇤⇥ 1⇤n (r j)⌥j14 |r i r | d⌃⇧N p⇤+j=1⌅⇥ 1 (r j )⌥j⇤⇤n⇥1d4 |r i r |⌃⇧=N ck=0q k114⇥|r i r k |N12 ⇤ ⇤ p1(r i )+j=1⌅⇤ 1⌅n (r j) 1 2⌅⌥jV Le|r i r |4⇥|r i⌃⇧r ⇥ | d ⇥N p⇤j=1⌅⇤ 1 (r j )⌥j⌅⌅nK Le|r i r |4⇥|r i r ⇥ |⌃⇧⇥d ⇥=0V YK Yiq k+1q k+2q kiΓj+1Ω 1 , ɛ 1 , φ 1 jq k 1apple 1Ω 2 , ɛ 2 , 2φ I + K Lq 2k 2 1j 12 I K YV L✏ 1✏ 2V Yapple@@n=apple Q06
Solution:L<strong>in</strong>ear algebra turns to N-body.
GMRESSaad, Schultz (1986)8
Matrix vector productFor row i:N pXj=1v jZj4⇡|r i1r 0 | d 0 ⇡N pXj=1XN kv jk=14⇡|r i1r k | m kir kr ij 1jj 19
N-body problemr kr i10
Algorithmic Acceleration:e treecode.
<strong>Treecode</strong>w(x i )=XN kj=1m 0 jG(x i , y j )r kr ir b12
<strong>Treecode</strong>w(x i ) ⇡PX||k||=01k! Dk yG(x i , y c ) X jm 0 j(y jy c ) ky jx ix i
<strong>Treecode</strong>w(x i ) ⇡PX||k||=01k! Dk yG(x i , y c ) X jm 0 j(y jy c ) ky jx iy cy cTree constructiony cx iy cy c
<strong>Treecode</strong>w(x i ) ⇡PX||k||=01k! Dk yG(x i , y c ) X jm 0 j(y jy c ) ky jx iTree constructionP2Mx i
<strong>Treecode</strong>w(x i ) ⇡PX||k||=01k! Dk yG(x i , y c ) X jm 0 j(y jy c ) ky jx ix iTree constructionP2MM2M
<strong>Treecode</strong>w(x i ) ⇡PX||k||=01k! Dk yG(x i , y c ) X jm 0 j(y jy c ) ky jx ix iTree constructionP2MM2MM2P
<strong>Treecode</strong>w(x i ) ⇡PX||k||=01k! Dk yG(x i , y c ) X jm 0 j(y jy c ) ky jx ix iTree constructionP2MM2MM2P
<strong>Treecode</strong>w(x i ) ⇡PX||k||=01k! Dk yG(x i , y c ) X jm 0 j(y jy c ) ky jx ix iTree constructionP2MM2MM2PP2P
Hardware Acceleration:e treecode on GPU.
<strong>Treecode</strong> on GPU‣ Parallelize over collocation po<strong>in</strong>tsP2Px iM2Py c15
<strong>Treecode</strong> on GPU - Results✓ =0.5P =6apple =1https://bitbucket.org/cdcooper/yukawatree16
PyGBe:<strong>Python</strong> on GPU <strong>for</strong> Bio-electrostatics
Multi-region models‣ Stern layers‣ Multi prote<strong>in</strong>‣ Solvent filled cavitiesL<strong>in</strong>earized Poisson Boltzmann equationPoisson equation✏ 2✏ 2✏ 1✏ 2✏ 218
Validation—analytical solution‣ Kirkwood sphere with Stern layer✏ 2 = 801Å4Å 2Å1e✏ 1 =4✏ 3 = ✏ 2 = 80apple =0.125Validation report—DOI 10.6084/m9.figshare.15433119
Lysozyme molecule: comparison with APBS20
Lysozyme molecule— convergence21
1HIV protease22
1HIV protease23
PyGBe:1) is code is open (f<strong>in</strong>d it on Bitbucket).2) Validation document on figshare.