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

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

OS X YosemiteとMacportsでtuntap (openconnect)を用いる方法

2014-10-31 19:55:28 | 日記
OS X Yosemiteからはkernel extensionについて署名されてない場合読み込まないことになった。従って、Macportsなどでコンパイルしたkernel extensionについてはロードできないということになる。

例えば、tuntap (openconnect), fuseなどは使えない...
openconnectは理研にVPNするときに使うのでこれは致命的である!!

ここで正攻法としては署名するには、となるのだがそうすると手前でコンパイルしたものは使えない。

一時的な解決法として強制的に署名されてないバイナリを使えるようにする、ということをopenconnect(tuntap)の場合について紹介する。
$ sudo port install openconnect


$ sudo nvram boot-args="kext-dev-mode=1"

これで署名されてないkernel extensionを使えるようになる。
つぎに、

$ sudo cp -r /opt/local/Library/Extensions/tap.kext /Library/Extensions/
$ sudo cp -r /opt/local/Library/Extensions/tun.kext /Library/Extensions/

/Library/LaunchDaemons/tap.plist, /Library/LaunchDaemons/tun.plist

$ cat /Library/LaunchDaemons/tap.plist
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<false/>
<key>Label</key>
<string>tap</string>
<key>ProgramArguments</key>
<array>
<string>/sbin/kextload</string>
<string>/Library/Extensions/tap.kext</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/dev/null</string>
<key>StandardOutPath</key>
<string>/dev/null</string>
<key>UserName</key>
<string>root</string>
</dict>
</plist>

$ cat /Library/LaunchDaemons/tun.plist
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<false/>
<key>Label</key>
<string>tun</string>
<key>ProgramArguments</key>
<array>
<string>/sbin/kextload</string>
<string>/Library/Extensions/tun.kext</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/dev/null</string>
<key>StandardOutPath</key>
<string>/dev/null</string>
<key>UserName</key>
<string>root</string>
</dict>
</plist>


とする。


起動する(リブートしてもよい)。

$ launchctl load -w /Library/LaunchDaemons/tap.plist
$ launchctl load -w /Library/LaunchDaemons/tun.plist


これでtuntap(openconnect)が使えるようになる。再起動しても有効である。

お疲れ様でした。


2014/10/30 CBI学会フォーカストセッションでPubChemQCプロジェクトについて発表

2014-10-30 12:38:48 | 日記
計算化学とデータベースの融合
Collaboration between computational chemistry and database
ということで発表します。

理論化学計算による第一原理からの小分子データベースの構築
中田真秀
Maho Nakata
理化学研究所
RIKEN
第一原理計算を使った小分子のデータベースを作成している
(http://pubchemqc.riken.jp/)。
PubChemから分子の情報を取得し、構造最適化計算および励起状態計算を行ったものを現在
15万分子程度公開している。

ということです。
15万分子だったのですが、現在は90万分子まで増えました。100万いきたかったんだけどな~

TODOは
検索エンジン作成、機械学習、反応データベース化です。

2014/10/29 SS研座談会: GPU vs MIC あなたの選択はどっち?

2014-10-27 21:21:37 | 日記
GPU vs MIC あなたの選択はどっち?
でパネリストとして発表してきます。

GPUもMICもアクセラレータですが、内部構造、それにともなって言語も大きく違います。GPU、といっても
CUDAですが、はメモリのデバイスとしてのバンド幅の階層構造をとりいれており、かなりプログラミングは難しいが
スピードも出やすい。CUDAは習得やチューニングは難しいとされ、試行錯誤の感が強いです。だんだんアプリケーションソフトウェアも
対応してきたため、一部はユーザーは何もせずに刺すだけで高速かの恩恵にあずかれます。

逆にMICは従来のプログラムがほとんどそのまま動く、という利点があります。メモリの階層構造を陽に考えないですむ反面
チューニングは困難を極めます。そして...遅い...

NVIDIAのGPUはなかなかおいしいところをとっていると思います。結局はメモリの物理的な位置、
バンド幅の階層構造を取り入れたプログラムが必要になるのだと思います(NUMA然り)。これと人間の直感とは
相反するものであるため、どういう折り合いがつくのかは歴史が明らかにしてくれると思います。

気軽なお話にはなるとおもいます:-)