C++でMPIを使った並列処理(1)
Sponsored Links
皆さんこんにちは
お元気ですか。私は元気かもしれません。
なんとなくMPIについてやりたいと思ったので調べてみた。
What is MPI
MPIとはMessage Passing Interfaceの略で、並列コンピューティングを行う為の規格だそうな。要は複数のPCを使って計算を並列化して高速化したい!というのに使います。
MPIのインストール
Mac
brew install open-mpi
Ubuntu
sudo apt-get install openmpi-bin openmpi-dev
実行テスト
#include <mpi.h> #include <stdio.h> int main(int argc, char *argv[]) { int rank, size; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); printf("Hello, World. I am %d of %d\n", rank, size); MPI_Finalize(); return 0; }
サンプルソースコードは適当に引っ張ってきました。
MPI_Initは必ずMPIのプログラムを動かす前に実行しなければならないそう。中なにやってるのですか。
sizeはプロセスのサイズ、rankはプロセスのランクを返すそうです。
ちょっと余りやっていないので、よくわかりませんが気が向けばまたブログに書き留めます。
コンパイルから実行まで
mpic++ mpi.cpp -o mpi
./mpi
manが使えるらしい
以下のコマンドを叩くとmanコマンドが見えるらしい。すごい
man MPI
気が向けばまた書くかも