0

チュートリアルからMPIプログラムを読んで練習していました。そこで、プロセスのランクを見つける例を見ました。しかし、同じ例が私のマシン(Ubuntu 10.04)で異なる出力を示しています。これがプログラムです

 #include <stdio.h>
 #include <mpi.h> 
main(int argc, char **argv)
{
  int ierr, num_procs, my_id;

  ierr = MPI_Init(&argc, &argv);

  /* find out MY process ID, and how many processes were started. */

  ierr = MPI_Comm_rank(MPI_COMM_WORLD, &my_id);
  ierr = MPI_Comm_size(MPI_COMM_WORLD, &num_procs);

  printf("Hello world! I'm process %i out of %i processes\n", 
     my_id, num_procs);

  ierr = MPI_Finalize();
}

チュートリアルによると期待される出力は

期待される出力:

Hello world! I'm process 0 out of 4 processes.
Hello world! I'm process 2 out of 4 processes.
Hello world! I'm process 1 out of 4 processes.
Hello world! I'm process 3 out of 4 processes.

私が得ている出力

Hello world! I'm process 0 out of 1 processes
Hello world! I'm process 0 out of 1 processes
Hello world! I'm process 0 out of 1 processes
Hello world! I'm process 0 out of 1 processes

私のマシンは intel i3、Dell Inspiron を使用しており、Ubuntu 10.04 OS を使用しています。問題の解決を手伝ってください。

4

1 に答える 1

0

Ubuntuでプログラムをコンパイルして実行しました:

tom@tom-ThinkPad-T500:~/MPI_projects/Start/net2/net2/bin/Debug$ mpirun -n 6 ./output
Hello world! I'm process 3 out of 6 processes
Hello world! I'm process 4 out of 6 processes
Hello world! I'm process 0 out of 6 processes
Hello world! I'm process 2 out of 6 processes
Hello world! I'm process 1 out of 6 processes
Hello world! I'm process 5 out of 6 processes

実行可能ファイルのあるフォルダーに入り、次を実行します。

mpirun -np 2 ./output

また

mpirun -np 6 ./output

フラグ -np は、呼び出されるプロセスの数を変更します ( http://linux.die.net/man/1/mpirun )。

mpirunフラグなしで実行して、多くの有用な情報を表示することもできます。

もう 1 つの興味深いコマンドはmpirun -info、MPI ビルド情報を表示するコマンドです。

これは私の出力の最初の部分です:

tom@tom-ThinkPad-T500:~/MPI_projects/Start/net2/net2/bin/Debug$ mpirun -info
HYDRA build details:
Version:                                 1.4.1
Release Date:                            Wed Aug 24 14:40:04 CDT 2011

最後の手段は、たとえば次のコマンドを使用して、MPI を再インストールまたは更新することです。sudo apt-get install libcr-dev mpich2 mpich2-doc

于 2013-02-27T04:42:27.023 に答える