投稿

7月, 2014の投稿を表示しています

SHTns

OpenMP/ClangSHTnsをコンパイルした。
ソースの取得$ hg clone https://bitbucket.org/nschaeff/shtns コンパイル PythonはMacPortsでインストールしたpython27を使う。
$ sudo port select python python27 としてある。makeするとCのソースをコンパイルし,Pythonモジュールを作る。ライブラリを作りインストールするターゲットはinstall-libである。ここでは,ライブラリとヘッダは${HOME}/localにインストールする。
$ export PYTHON=/opt/local/bin/python $ export CC=${HOME}/local/openmp-clang/build/Debug+Asserts/bin/clang $ export CFLAGS=-fopenmp $ export LDFLAGS=-L/opt/local/lib $ export CPPFLAGS=-I/opt/local/include $ ./configure --prefix=${HOME}/local --enable-openmp --enable-python $ make $ make install-lib Pythonモジュールのインストール 管理者権限の必要のない${HOME}/Library/Python2.7/lib/python/site-packagesにインストールする。
$ python setup.py install --user テスト テストはMacBook Pro Retina 13-inch Late 2012で1時間くらいかかった。ERRORとなっているものもある。
$ make time_SHT $ ./test_suite.sh

ClangでOpenMP

MacやFreeBSDのデフォルトのコンパイラはclangだが,数値計算ではOpenMPが使えるgccに一日の長がある。ClangでもOpenMPはないのかと思い検索したところ,OpenMP/Clangがあることを知り,試してみた。
コンパイラOpenMP/ClangのGetting the source codeの通りにソースを取得。同BuildingにあるようにClangのGetting Started Building and Running Clangに従ってコンパイル。llvmとclangをコンパイルするので時間がかかるが,Mavericksでは何の問題もなく終了した。buildというディレクトリからconfigureとmakeをすると,build/Debug+Asserts以下にbinとlibができる。
実行時ライブラリ 次にIntelのOpenMP Runtime Libraryをダウンロード。clangでのビルドに対応しているが,gccを探してバージョンを調べるところでコンパイルが止まってしまう。tools/check-tools.plを編集する。単純に変数$verと$bldを指定した。
--- tools/check-tools.pl.orig 2013-12-14 03:08:50.000000000 +0900 +++ tools/check-tools.pl 2014-07-05 16:19:31.000000000 +0900 @@ -276,8 +276,10 @@ # i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5367) # i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5484) # i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00) - $stdout =~ m{^.*? \(GCC\) (\d+\.\d+\.\d+) …