2012-04-03 11 views
1

申し訳ありませんが、間違いはありますが、うまくできませんでした。mpiのプロセッサ数が間違っています

#include <stdio.h> 
#include <mpi.h> 

int main (argc, argv) 
    int argc; 
    char *argv[]; 
{ 
    int rank, size; 

    MPI_Init (&argc, &argv);  /* starts MPI */ 
    MPI_Comm_rank (MPI_COMM_WORLD, &rank);  /* get current process id */ 
    MPI_Comm_size (MPI_COMM_WORLD, &size);  /* get number of processes */ 
    printf("Hello world from process %d of %d\n", rank, size); 
    MPI_Finalize(); 
    return 0; 
} 

そして:

> mpicc -o hello_world_c hello_world.c 
> mpirun -np 4 hello_world_c 

しかしリターン:

私は世界ハロー簡単なMPIをコンパイルしてい

Hello world from process 0 of 1 
Hello world from process 0 of 1 
Hello world from process 0 of 1 
Hello world from process 0 of 1 

しかし、私のコンピュータは4つのコアとコアi7のです。そして、すべては大丈夫、すなわち、ようです。 cat/proc/cpuinfoには4つのプロセッサーが表示されます

何が起こっていますか? ありがとうございます!!!!

+1

が見えないコンパイルして実行

sudo apt-get install libopenmpi-dev openmpi-bin openmpi-doc 

をインストールします。どのMPIライブラリをインストールしましたか?どのようにインストールしましたか? –

+0

[MPI \ _Rankの可能な重複はすべてのプロセスのために同じプロセス番号を返します](http://stackoverflow.com/questions/20287564/mp​​i-rank-return-same-process-number-for-all-process) –

答えて

5

コードに問題はありません。 唯一の問題は、mpiのインストールであることがあります。

通知:

プロセッサ間には違いがあります。それは同じことではありません。

+0

Ok、ありがとう!あなたは私のmpiのインストールで変更する必要があることを知っていますか? –

+0

どのようにインストールしましたか?どのコンピュータを使用していますか?あなたはwin7を使用しますか? – lolo

+0

いいえ、私はUbuntuと通常のインストールを使用します。パッケージmpich2 –

0

私はあなたがそれをコンパイルすることができますかわからない:

int main (argc, argv) 
int argc; 
char *argv[]; 

は別のポイントは、MPIはプロセスのないコア間でメッセージを渡すか、メッセージパッシングインターフェースであるということである

int main (int argc, char *argv[]) 

に変更されます4つのコアシステムを使用している場合、ラムが許す限り多くのプロセスでコードを実行できますが、4つのプロセスのみがいつでも動作し、他のプロセスは4つのプロセスのみを使用するのが効率的です。

1

この場合、 'mpich2'パッケージのmpiexecが必要です。

まず、コンピュータにインストールされているすべてのmpiパッケージを削除します。 サーバーでのUbuntuの場合は、コマンドを使用することができます。

sudo apt-get purge mpi mpich2 openmpi-common 

あなたが反応して何も持っていない場合は

which mpiexec 

このコマンドを実行してください、あなたはすべてのパッケージを削除したことを確認するために、あなたはすでにすべてのパッケージを削除しました。

その後、再び、あなたのコードをコンパイルして実行してみMPICH2

sudo apt-get install mpich2 

のパッケージを再インストールしてください! 願っています!

0

今ではあなたのMPIコードに問題がありますようなコード

enter image description here

関連する問題