1

mpiexec を使用して、いくつかの hello world 実行可能ファイルを実行しています。それらはそれぞれ実行されますが、プロセスの数は常に 1 であり、4 つのプロセスがあるはずです。誰かが理由を理解していますか?また、stty が無効な引数を与えている理由もわかりません。ありがとう!

出力は次のとおりです。

   /bin/stty: standard input: invalid argument
   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

c ファイルは次のとおりです。

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

int main(int argc, char *argv[])
{
  int rank, size;
  MPI_Init (&argc, &argv);
  MPI_Comm_rank(MPI_COMM_WORLD, &rank);
  MPI_Comm_size(MPI_COMM_WORLD, &size);
  printf("Hello world from process %d of %d\n", rank, size);
  fflush(stdout);
  MPI_Finalize();
  return 0;
}

送信スクリプトは次のとおりです。

#!/bin/bash

#PBS -N helloWorld
#PBS -l select=4:ncpus=2
#PBS -j oe
#PBS -o output
#PBS -l walltime=3:00
cd $PBS_O_WORKDIR


mpiexec ./helloWorld
4

1 に答える 1

4

スティーブン:

上記は機能するはずです。ラインに沿った何か (PBS <-> MPI ライブラリ <-> mpiexec) が正しく構成されていないようです。

最初の最も明白な推測 - mpiexec は、コンパイルで使用したライブラリに対応する同じ mpi 起動プログラムですか? スクリプトでa を実行すると、プログラムをコンパイルしたときに にwhich mpiexec対応する何かが得られますか? which mpiccコンパイルする前に「モジュールロード[mpiパッケージ]」などをしなければならないのですか?

同様に、mpiexec は PBS に対応していますか? そうでない場合は、何らかの形でホストファイル (${PBS_NODEFILE}) とプロセッサの数を指定する必要があるかもしれません。

どの mpi を使用しており、どのシステムで実行していますか? それは公開されているシステムで、ドキュメントを参照できますか?

于 2010-10-10T16:44:55.083 に答える