0

これが簡単な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 ...

私のコンピュータとの違いは何ですか?:(

4

0 に答える 0