13.07.2015 Views

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

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!