これが簡単なmpiプログラムです(私は初心者です):
#include <stdio.h>
#include <mpi.h>
int main(int argc, char ** argv) {
int rank, size;
char name[80];
int length;
MPI_Init(&argc, &argv); // note that argc and argv are passed
// by address
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
MPI_Comm_size(MPI_COMM_WORLD,&size);
printf("size is: %d\n", size);
MPI_Get_processor_name(name,&length);
printf("Hello MPI: processor %d of %d on %s\n", rank,size,name);
MPI_Finalize();
}
mpicc -o ex1 file.c でコンパイルしましたが、mpirun -np 10 ./ex1 で実行すると、期待どおりに 10 個のプロセスが作成されません。実際、10回にわたって、次のように書いています。
Hello MPI: lory-SVE1513Q1ESI のプロセッサ 0/1
サイズ変数が 1 に設定されている理由がわかりません。キャンパスの研究室 (私の場合は ubuntu) のコンピューターで実行しようとしましたが、次のコマンドで正しく動作します。
Hello MPI: lory-SVE1513Q1ESI のプロセッサ 0/10 Hello MPI: lory-SVE1513Q1ESI のプロセッサ 1/10 Hello MPI: lory-SVE1513Q1ESI のプロセッサ 2/10 ...
私のコンピュータとの違いは何ですか?:(