のんびりしているエンジニアの日記

ソフトウェアなどのエンジニア的な何かを書きます。

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

気が向けばまた書くかも