■
CUDAのバージョンとVASP-GPUのメモリリーク
P100が入った計算機が到着したのでセットアップした。VASP-GPUを走らせてみるとメモリリークを起こす。はじめ原因ははっきりしなかった。CUDAのマイナーバージョン(8.0.61)が問題のなかったもの(8.0.44)と違うことに気づき、古いバージョンをNvidiaのサイトのアーカイブからダウンロードしてインストールした。CUDA Toolkit Archive | NVIDIA Developer networkタイプのパッケージだと、結局最新のものがネットワーク経由でダウンロードされてしまう(要確認)ので、パッケージをまるごとダウンロード(localタイプ)する。1.8GB也。Nvidiaのサイトに書いてある以下の手順通りでバージョン8.0.44がうまくインストールされる。
sudo dpkg -i cuda-repo-ubuntu1404-8-0-local_8.0.44-1_amd64.deb sudo apt-get update sudo apt-get install cuda
これでメモリリークが解決した。
■
Macの設定
zshにするには、環境設定Users & Groupsで自分のアカウントを右クリックして詳細設定から行う。
言語設定で日本語を入れる。キーボードショートカットで、Command+spaceをinput sourceの切り替えに割り振る(spotlightの割り振りを外す)。
フォント
Font BookでRictyをインストールする。
ライセンスによる制約でRictyはデータからフォントを自分で生成する必要がある。
フォントの生成、設定はこの辺を参照。
http://milanista224.blogspot.jp/2013/07/retina-emacs243.html
http://miyano-harikyu.jp/sola/devlog/2013/11/15/post-67/
Ricty Diminishedはフォントとして配布されているので、こっちのほうが簡単。
プログラミング用フォント Ricty Diminished
Macportsと開発環境
sudo xcode-select --install sudo xcodebuild -license
Macportsをインストール
http://www.macports.org/install.php
http://guide.macports.org/#installing.xcode
XQuartzをインストール
https://xquartz.macosforge.org/landing/
OSのアップグレード時にはmigrationを行う。
https://trac.macports.org/wiki/Migration
ターミナルはiTerm2が使いやすい。iTerm2 - macOS Terminal Replacementからインストールする。もしくはportで
sudo port install iterm2
Emacsのためにoptionキーにmetaを割り振るには、profile -> keyで設定すればよい。+escを選ぶ。
sudo port install gcc6 sudo port select --set gcc mp-gcc6
OpenBLASのインストール
sudo port install OpenBLAS +gcc6
このパッケージはblas, lapack, lapackeを含んでいる。/opt/local/lib/libopenblas.*がライブラリ。/opt/local/include/以下にヘッダファイルがある。
Python 2.7
sudo port install python27 sudo port select --set python python27
(Jan 12, 2017) python27のインストールログによるとpy27-readlineのインストールをした方が良いらしい。
sudo port install py27-readline
Numpyなどのインストール
sudo port install fftw-3 +gcc6 sudo port install py27-numpy +gcc6 +openblas sudo port install py27-scipy +gcc6 +openblas
OpenBLASに関しては、export OPENBLAS_NUM_THREADS=1を設定した方が安全かも。
Faq · xianyi/OpenBLAS Wiki · GitHub
IPythonはnumpy dependentなので、numpyのあとにインストール
sudo port install py27-ipython sudo port select --set ipython py27-ipython
その他python library
sudo port install py27-matplotlib py27-yaml sudo port install py27-h5py +gcc6
sudo port install py27-pip sudo port select --set pip pip27 pip install Sphinx --user pip install sphinx-bootstrap-theme --user
dvipngはmactexのパッケージに含まれる。mactexをインストールしている環境で、portsからdvipngを入れると、matplotlibの数式記入でトラブルが起きる。
その他ツール
sudo port install tmux ispell sshfs
あたりをインストール。subversion, gitはすでに入っている。
dircolorsを使いたい場合は
sudo port install coreutils
で、gls、gdircolorsなどがインストールされる。
Ruby
OS Xにrubyは入っているようだけど、travisを使いたい、ruby C-APIを使うときにこけるなどあればportからインストールする。
sudo port install ruby23 sudo port select --set ruby ruby23
gem install --user-install travis
-
- user-installする場合、~/.gem/ruby/2.0.0/binなどにPATHを通す必要がある。
sudo port install gnuplot
aquatermのインストールでこけたので、
sudo port install gnuplot -aquaterm
として、aquatermをはずす。aquaよりwxtの方が良さそうなので、むしろaquaterm無くて良いかも。
sudo port install ImageMagick
Mayavi。まずvtkをインストールしてから。
sudo port install vtk +python27
sudo port install py27-mayavi
sudo port install gtk2 intltool
emacs
El Capitanのemacs-appではvisible-bellによってウインドウ中央に空白が残ってしまうようになった。emacs-mac-appでは問題なし。
sudo port install emacs-mac-app
applications/macportsに入る。emacsのシェルのエイリアスを作る。
alias emacs="/Applications/MacPorts/Emacs.app/Contents/MacOS/Emacs"
Commandキーをmeta keyとするためには以下の設定を行う。
(setq mac-option-key-is-meta nil) (setq mac-command-key-is-meta t) (setq mac-command-modifier 'meta) (setq mac-option-modifier nil)
http://www.emacswiki.org/emacs/MetaKeyProblems#toc15
ターミナル内でemacsを使うとき(-nw)にフォントの設定あたりでコケるので、そのときは設定を読み込まないようにする。
http://stackoverflow.com/questions/3861857/emacs-check-for-no-window-system-in-emacs
(when window-system ... )
flyspell-modeでispellの代わりにaspellを使う場合
sudo port install aspell aspell-dict-en
でインストールして、次の設定を加える
(setq ispell-list-command "--list")
参考: http://www.emacswiki.org/emacs/FlySpell#toc8
Tex環境
Texの環境はMacTexというのをインストールすればだいたい整うらしい。
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?Mac
REVTexも入っているようだ。
http://publish.aps.org/revtex/revtex-faq
YaTeXはこれを参考に
http://salinger.github.io/blog/2013/02/04/1/
Skim. Preferenceのsyncを設定。
http://skim-app.sourceforge.net/
Time Machineで復旧した場合、MacTex環境が壊れるようなので、そのときは再インストールを行う。
Lapack Lapackeの使い方
lapackeのmake.inc
LAPACKLIB = /opt/local/lib/liblapack.a LAPACKELIB = liblapacke.a
distutilでC拡張を書くときのsetup.py
extra_link_args=['-lgomp', '../lapack-3.5.0/liblapacke.a'],
■
cmake
CMake Tutorial | CMake
CMake by Example – Mirko Kiefer’s blog
CMake Useful Variables - KitwarePublic
Are CMAKE_SOURCE_DIR and PROJECT_SOURCE_DIR the same in CMake? - Stack Overflow
Is it better to specify source files with GLOB or each file individually in CMake? - Stack Overflow
CMAKE によるビルド自動化とテスト実行 - zonomasaの日記
CMake: 便利なコマンド・変数 - Qiita
http://www.cs.gunma-u.ac.jp/~nagai/wiki/index.php?cmake%20%A4%CE%BB%C8%A4%A4%CA%FD
cmake - How do you add Boost libraries in CMakeLists.txt? - Stack Overflow
c++ - Debug vs Release in CMake - Stack Overflow
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wall") set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Wall")
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_EXPORT_COMPILE_COMMANDS=1 ..
make VERBOSE=1
■
C-APIで作ったpythonモジュールのメモリリークのチェック
以下のサイトを参考にやってみる。
Using AddressSanitizer - Atomic Simulation Environment
Pythonのソースコードはこちらから。
Python Source Releases | Python.org
export CC='gcc -fsanitize=address' export CXX='g++ -fsanitize=address' export LSAN_OPTIONS=exitcode=0
cd ~/code/pysanitize/Python-3.5.2 ./configure --prefix=~/code/pysanitize --without-pymalloc --disable-ipv6 make make install
export PATH=~/code/pysanitize/bin:$PATH
setuptools, cython, numpyの順にインストールしていく。ソースコードはPyPIからダウンロード。
setuptools 30.2.0 : Python Package Index
Cython 0.25.1 : Python Package Index
numpy 1.12.0b1 : Python Package Index
インストールはsetup.pyで行う。
python3 setup.py install --prefix=~/code/pysanitize
同様にmatplotlib, h5pyもインストールする。ただし、その前に以下のパッケージを先にシステムのパッケージマネージャでインストールする。
sudo aptitude install libfreetype6-dev libpng-dev libhdf5-dev
Index of Packages : Python Package Index
matplotlib 1.5.3 : Python Package Index
PyYAML 3.12 : Python Package Index
Ubuntu-mate 16.04の場合、デフォルトでシステムにインストールしているnumpyが邪魔をするので、setup.pyや実行するpython scriptのなかで、例えば以下のようにしてsys.pathから取り除く必要があるかもしれない。
import sys del_i = [] for i, p in enumerate(sys.path): if 'dist-packages' in p: del_i.append(i) if 'local' in p: del_i.append(i) for i in del_i: del sys.path[i]