Torque を実行しているクラスターにアクセスできますが、MATLAB Distributed Computing Engine をインストールするオプションがありません。分散配列などの追加機能なしで MATLAB で MPI コマンドを使用できるかどうか疑問に思っています。分散コンピューティング エンジンがない場合、MATLAB lab* コマンドを mpirun コマンドと組み合わせて使用できますか?
質問する
2146 次
1 に答える
3
MPI 実装が Open MPI の場合、Poor Man's Parallel Toolbox (tm) を使用できます。これにより、多くの MATLAB インスタンスを多くのノードで並行して実行し、それぞれに異なることを実行させることができます (たとえば、異なるスクリプトを実行する)。成功の鍵は、Open MPI が現在のプロセスのランクを環境変数にエクスポートしOMPI_COMM_WORLD_RANK
、単純なシェル スクリプトを使用して実行をラップできることにあります。以下にサンプルを示します。
#!/bin/bash
file_num=script$(printf "%03d" $(($OMPI_COMM_WORLD_RANK + 1))).m
matlab < $file_num
これを次のように起動します。
mpiexec -np 24 ./script.sh
これにより、MATLAB の 24 のコピーが起動され、それぞれが異なるスクリプトから入力を受け取ります。最初のものは からコマンドを取得しscript001.m
、2 番目のものは から、というように取得しますscript002.m
。
もちろん、いつでも並列コードを C や C++、さらには Fortran で記述して、そこで MPI を使用することができます。次に、コードを MATLAB から読み込み可能で呼び出し可能な共有ライブラリにコンパイルします。
于 2012-10-22T16:35:41.400 に答える