中田真秀(なかたまほ)のブログ

研究について、日常について、その他。

2電子積分(d,f含む)をGPUで高速に計算する(10倍~20倍)という論文とプログラム

2016-04-11 15:15:22 | 日記
2電子積分(d,f含む)をGPUで高速に計算する(10倍~20倍)という論文とプログラム

http://ow.ly/10vQyk
http://github.com/miaoyipu/quick

Acceleration of High Angular Momentum Electron Repulsion
Integrals and Integral Derivatives on Graphics Processing Units
Yipu Miao and Kenneth M. Merz, Jr.

ABSTRACT:
We present an efficient implementation of ab initio self-
consistent field (SCF) energy and gradient calculations that run on Compute
Unified Device Architecture (CUDA) enabled graphical processing units
(GPUs) using recurrence relations. We first discuss the machine-generated
code that calculates the electron-repulsion integrals (ERIs) for different ERI
types. Next we describe the porting of the SCF gradient calculation to GPUs,
which results in an acceleration of the computation of the first-order derivative
of the ERIs. However, only s, p, and d ERIs and s and p derivatives could be
executed simultaneously on GPUs using the current version of CUDA and
generation of NVidia GPUs using a previously described algorithm [Miao and Merz
J. Chem. Theory Comput.2013,9, 965-976.].
Hence, we developed an algorithm to compute f type ERIs and d type ERI derivatives on GPUs. Our benchmarks shows the
performance GPU enable ERI and ERI derivative computation yielded speedups of 10-18 times relative to traditional CPU
execution. An accuracy analysis using double-precision calculations demonstrates that the overall accuracy is satisfactory for most
applications.


ほんとだとするとすごい。ソースコードも公開されている。

FMOのインプットファイルを作るfragIt

2016-04-11 11:46:08 | 日記
FMO (fragment molecular orbital)法は大きな分子を計算するとき、特にタンパク質を計算するときに役に立つ。
問題はinput fileを作るのが尋常ではなく難しいことだ。GAMESSもすでにマニア向けであるが、FMOまでくると
人力で作るのはほぼ不可能である。これをとんでもなく簡単にするのが
FragIt
である。pdbからダイレクトにGAMESSのinputファイルを作成してくれる(自動で水素はつかないのでそこは
また必要)

方針は簡単にいうと、SMARTS表記でフラグメントパターンを記述、pdbから読んでそこで切る、である。

$ wget https://github.com/FragIt/fragit-main/archive/fragit-1.5.0.tar.gz
$ python2.7 setup.py build
$ python2.7 setup.py install

running install
running build
running build_py
running build_scripts
running install_lib
running install_scripts
changing mode of /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/fragit to 755
running install_data
running install_egg_info
Removing /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/fragit-1.5.0-py2.7.egg-info
Writing /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/fragit-1.5.0-py2.7.egg-info

----依存の解消(OpenBABELおよびpython2系が必要)
port select --set python python27
git clone git://github.com/openbabel/openbabel.git
cd openbabel
mkdir build
cd build
cmake -DRUN_SWIG=ON -DPYTHON_BINDINGS=ON \
-DCMAKE_INSTALL_PREFIX=/opt/openbabel  -DENABLE_TESTS=ON ..
make
make test
sudo make install

export PYTHONPATH=/opt/openbabel/lib/python2.7/site-packages:$PYTHONPATH
export LD_LIBRARY_PATH=/opt/openbabel/lib:$LD_LIBRARY_PATH
export PATH=/opt/openbabel/bin:$PATH
----つかいかた
cd /Volumes/Home/maho/fragit
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/fragit ala_phe_ala.pdb


サンプルのタンパク質(103原子、Ala-Ala-Ala-Ala-Phe-Ala-Ala-Ala)をfragItで分割し、基底関数6-31G*で計算してみたら
3530.081u 43.944s 1:00:20.74 98.7% 0+0k 109+376io 84pf+0w
ほぼ一時間であった(Mac Late 2012 corei7 2.3GHz)