0

私は管理者ではなく、ロックされた構成になっている古いクラスターで作業しているため、問題が発生しています。システムは元の mpich を使用し、クラスター スクリプトは実行用に parallel::mpi を使用して Perl で記述されています。このモンテカルロ スクリプトは、実行する 5000 個のテスト ケースを生成し、クラスターで起動します。元のコードを調べたところ、約 500 (5000 ではなく) のテストが行​​われ、それらが 3 つのファイルにまとめられていました。ファイルは、一度に最大約 260 のファイルをクラスターに渡しました。システム管理者になぜプログラマーがこれを行ったのかを尋ねたところ、mpich(1) では一度に 260 を超えるジョブを送信できないためだとのことでした。それが mpich1 のものか、parallel::mpi のものかはわかりません。

そこで、Perl プログラムを書き直して、各ファイルが約 250 ケースの 19 ファイルを生成し、5000 ケースすべてを実行できるようにしました。私の質問は、通常、pbs_mpirun コマンドで実行および起動するファイルが 1 つあるということです。元のプログラムには、3 つの個別の起動 pbs ファイルがありました。これで 19 個になりました。それらすべてを同じファイルから起動できますか? mpirun コマンドの間にある種のスリープを入れる必要がありますか? クラスター キューの設定方法では、一度に 1 人のユーザーのみが同じキューで 1 つのジョブを実行できます。したがって、n64 をキューに入れるために複数の実行を起動するために起動した場合、一度に実行されるのは 1 つだけです。これは問題ありませんが、19 の実行を送信し、qstat リストを埋めて 1 つのモンテカルロを完了する必要はありません。に。

これはよくあることかもしれませんが、私は対処したことがないので、アドバイスをいただければ幸いです。以下は、最初の Perl クラスター ファイルを起動する私の PBS ファイルです。Perl クラスター ファイルは mpi_wokernode_1.pl - mpi_workernode_19.pl です。

    #!/bin/sh
    ###Lines starting with "# " are comments, batch system configuration
    ###commands starting with "#PBS" 
    #PBS -l walltime= 12:00:00
    #PBS -N MONTE
    ### Declare job non-rerunable
    #PBS -r n
    ### Output files (overwritten in successive jobs)
    #PBS -e system1:/filearea
    #PBS -o system1:/filearea
    ### Return error and output on output stream
    #PBS -j oe
    ### Queue name (small, medium, long, verylong)
    #PBS -q n64@old_cluster
    #PBS -l select=64:ncpus=1
    #PBS -l place=free
    ##PBS -m e
    #PBS -W group_list=groupa

    cd /filearea
    # Count all available processors 
    NPROCS=`grep -v "\#" $PBS_NODEFILE | wc -l` 
    pbs_mpirun mpi_workernode_1.pl
    pbs_mpirun mpi_workernode_2.pl
4

1 に答える 1

2

これはお使いのシステムに固有の問題のように思われるため、ここで有益なアドバイスを得るのは難しいかもしれません。ただし、マシンにホーム ディレクトリがある場合は、通常、そこに独自の MPI をインストールして起動できます。--prefix=$HOME/<path to install>ラインに追加するだけ./configureで、準備完了です。デフォルトのMPIではなくMPIを使用するように、おそらくPBSスクリプトを変更する必要があります。おそらく、最後の 2 行を次のように組み合わせるだけです。

/path/to/mpiexe -n <num_procs> /path/to/mpi_program

これは、いくつかのことを前提としています。

  1. ホームディレクトリにある種の NFS 共有が設定されています。これがないと、MPI 実行可能ファイルをシステム内のすべてのノードにコピーする必要があり、面倒です。
  2. 元の MPI プログラムにアクセスでき、ラッパー スクリプトなしで直接実行できます。これにより、プロセス全体が簡単になります。
  3. システムは、独自の MPI の実行を妨げるような厄介なことをしていません。過去に、デフォルトの MPI ライブラリを独自のものに置き換えることが困難/不可能なシステムを使用したことがあります。あなたのシステムはおそらくそうではありませんが、調べるために実験する必要があります.
于 2013-08-16T14:06:20.367 に答える