CUDA Treecode in Python App for Biomolecular Electrostatics | GTC ...

gputechconf.com

CUDA Treecode in Python App for Biomolecular Electrostatics | GTC ...

entity Standardst.GTC 2013CUDA treecode in a Python application forbiomolecular electrostaticsIntroductionImportance of an IdentityIdentity PlatformBrand PersonalityLorena A. BarbaChristopher CooperTerminologyDepartment of Mechanical Engineering, 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.


Biomolecular Electrostatics:e model & the discretization.


Implicit solvent modelr 2 1(r) = X iq i✏ 1(r, r i ) in solute (⌦ 1 )r 2 2(r) =apple 2 2(r) in solvent (⌦ 2 )1 = 2 on interface,@ 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:Linear 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.


Treecodew(x i )=XN kj=1m 0 jG(x i , y j )r kr ir b12


Treecodew(x i ) ⇡PX||k||=01k! Dk yG(x i , y c ) X jm 0 j(y jy c ) ky jx ix i


Treecodew(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


Treecodew(x i ) ⇡PX||k||=01k! Dk yG(x i , y c ) X jm 0 j(y jy c ) ky jx iTree constructionP2Mx i


Treecodew(x i ) ⇡PX||k||=01k! Dk yG(x i , y c ) X jm 0 j(y jy c ) ky jx ix iTree constructionP2MM2M


Treecodew(x i ) ⇡PX||k||=01k! Dk yG(x i , y c ) X jm 0 j(y jy c ) ky jx ix iTree constructionP2MM2MM2P


Treecodew(x i ) ⇡PX||k||=01k! Dk yG(x i , y c ) X jm 0 j(y jy c ) ky jx ix iTree constructionP2MM2MM2P


Treecodew(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.


Treecode on GPU‣ Parallelize over collocation pointsP2Px iM2Py c15


Treecode on GPU - Results✓ =0.5P =6apple =1https://bitbucket.org/cdcooper/yukawatree16


PyGBe:Python on GPU for Bio-electrostatics


Multi-region models‣ Stern layers‣ Multi protein‣ Solvent filled cavitiesLinearized 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 (find it on Bitbucket).2) Validation document on figshare.

More magazines by this user
Similar magazines