2015年10月23日金曜日

OpenMP + OpenMPI Hybrid Computing

最先端分野で用いられるコンピュータ環境において、分散メモリに対しMessage Passing Interface (MPI)、共有メモリに対しMulti-Threadによって並列化を行う。更にCPU単位でSIMDなどがある。これらのハードウェア資源に対し効率よく計算を高速化するための共通インターフェースが用意されている。それが掲題のライブラリだ。

OpenMPIではバージョン1.8.xまではちゃんとMultithread対応をうたっていなかったようで、1.10.0からオフィシャルに対応したようだ。試してみると1.6.5では動くけど1.8.xでは動かなかったり、不安定だった。そこで、OpenMPI 1.10.0を OS X Yosemiteにインストールついでに、OpenMP対応のClang/LLVMをインストールしてみた。

手順としては、OpenMP対応のClangをインストールし、OpenMP用のランタイムライブラリ Intel OpenMP Runtime Libraryをインストールする。次にOpenMP用Clangに対し、OpenMPIをインストールする。

パッチなど当てる必要も無く、掛かったのは待ち時間だけ。Intelのサンプルプログラムもちゃんと動作した。POSIX Threadなど自前でThread Programmingをする人はOpenMPなどは必要ないけれど、あれば便利。

ちなみに、cmakeはkitwareが提供するツールで無い場合はこれもインストールする必要がある。

OpenMP Clang

 git clone https://github.com/clang-omp/llvm
 git clone https://github.com/clang-omp/compiler-rt llvm/projects/compiler-rt
 git clone -b clang-omp https://github.com/clang-omp/clang llvm/tools/clang
 mkdir build
 cd build
 cmake -G "Unix Makefiles" ../llvm
 make
 sudo make install

OpenMPI

./configure --enable-mpi-thread-multiple CXX=/usr/local/bin/clang++ CC=/usr/local/bin/clang 

Intel OpenMP Runtime Library

サイトから最新のものをダウンロードし、解凍する。
cd libomp_oss
make compiler=/usr/local/bin/clang
cd /usr/local/include
sudo ln -s /Users/momo/libomp_oss/exports/common/include/omp* .
cd ../lib
sudo ln -s /Users/momo/libomp_oss/exports/mac_32e/lib.thin/libiomp5.dylib .

2015年10月6日火曜日

TPP大筋合意

TPP大筋合意したそうだが、これは消費税増税をするなら必要不可欠だったのだと思う。今の物価のまま消費税を増税したなら、国民の日々の暮らしはキューキューになるのは明白だった。ここで関税を軽減された安い食料品が輸入されることによってどうにかなる、というわけだろう。
ヨーロッパでは高い税率がかかっていて、ドイツでは15%。でも日用品などは7%。それでも結構高いけどそれでもやっていけてたのは、食料品が安いから。いろんな国から安い食品が入ってくるので、安いものを選ぶことが出来る。そうじゃなければやってけない。日々の糧の金額を下げることが出来れば生活はどうにか成立つ。安倍政権もホッとしていることだろうな。

ドイツのスーパーには安いスペイン産のイチゴがあったけど、うちの子はその安いイチゴには目もくれないくせに、近くの農家の露地物のイチゴには目をむいて喰いまくっていた。外国産の安い食品攻撃の矢面に立つ日本の農家の生き残りのすべの基本はこんな所なんだろうなあ。