私は、次のようにtutorialを使用してmpiクラスタを作成しようとしています。ubuntu 14.04とbeagleboard xm boardを使用しています。問題は、私のクライアントが32ビットのarmv7プロセッサを搭載したbeagleboard-xmだということです。私は両方のUbuntu 14.04(インテルx86_64版)とのBeagleBoard-XMでこれをコンパイルすることができます32ビットと64ビットプロセッサ上で混在mpi実行ファイルを実行する
#include <mpi.h>
#include <stdio.h>
int main(int argc, char** argv) {
// Initialize the MPI environment
MPI_Init(NULL, NULL);
// Get the number of processes
int world_size;
MPI_Comm_size(MPI_COMM_WORLD, &world_size);
// Get the rank of the process
int world_rank;
MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);
// Get the name of the processor
char processor_name[MPI_MAX_PROCESSOR_NAME];
int name_len;
MPI_Get_processor_name(processor_name, &name_len);
// Print off a hello world message
printf("Hello world from processor %s, rank %d"
" out of %d processors\n",
processor_name, world_rank, world_size);
// Finalize the MPI environment.
MPI_Finalize();
}
:私は、そのMPIC++ -o hello_world.c内容を使用して実行ファイルを作成しました。私は「mpirun -host Server,board1 ./mpi_hello_world
」を使用して、たとえば使用して並列で実行しようとすると、しかし、私は私が32ビットexecutiableは私のサーバーから起動することができないためであると考えてい
bash: orted: command not found
--------------------------------------------------------------------------
A daemon (pid 8349) died unexpectedly with status 127 while attempting
to launch so we are aborting.
を取得します。もし私が "./mpi_hello_worldを実行すると、ボード自体に" -su: ./mpi_hello_world: cannot execute binary file: Exec format error
"というメッセージが表示されます。ボード上でコンパイルしてサーバ上で実行しようとすると、逆のことが起こります。私のサーバーとボードの両方を同時に使用しているのですか?
2つの実行可能ファイルをコンパイルしようとしましたか?1つはx86用、もう1つはARM用ですか?それで、あなたは 'mpirun -host Server 'のようなもので走ってみることができます。/ mpi_hello_world_x86:-host board1。/ mpi_hello_world_arm' ...ちょっと考えました。 – Gilles
@Giles: "mpirun -np 1 -host Server ./mpi_hello_world_x86:-np 1 -host board1 ./mpi_hello_world_xarm"を実行しようとしましたが、まだbash:orted:コマンドが見つかりませんでした。 ----------- -------------------------------------------------- ------------- を起動しようとするとデーモン(pid 8349)が予期せずステータス127で亡くなり、中断しました。実行ファイルは、マシン上で個別に正常に実行されます。 – srai
2つの異なる問題があります:1 /私の前のコメントが解決しようとしたバイナリと2 /あなたのMPI環境の設定との間の非互換性。 MPIコードを実行しようとすると、あとで調整する必要があります。 'mpirun -host Server、board1 hostname'のようなものが両方のマシンの名前を返さない限り、あなたは動作しないMPI環境を持っています。 – Gilles