合計NUMTOT個のプログラムを開始する必要があります(C、Mathematica、ns-2...数学環境はすべて可能です)。問題は、これらのプロセスを実行しているコンピュータがMAX(MAX <NUMTOT)などの実行の最大数だけを許可することです。
次の行を使用して端末でこのプログラムを実行します。
./run.sh -d directory num
ここで、run.shは数学プログラムを呼び出すスクリプト、ディレクトリはプログラムがあるディレクトリ、numは新しい実行回数を表します(integer * num = NUM)。 「run.sh」スクリプトは、「ディレクトリ」(プログラム)のコピーを使用して「num」個のディレクトリを作成し、プログラムの「num」インスタンスを起動します。私の場合、Matlabインスタンスでした。
実行中のプロセスの数を自動的に追跡し、「num」が完了して最大数が(MAX-num)に減ったら、合計数がNUMになるまでMatlabの次の「num」シミュレーションを開始するスクリプトが必要です。シミュレーションが完了しました。
スクリプトが 1 つだけ完了したら、次のプログラムを呼び出して MAX 可能なプロセスを維持できれば、より良いでしょう。
実際に実行されているプロセスの数を知るために、次のスクリプトを実行します。
ps axu |grep plopez|grep simulacion|grep MATLAB|awk '{ $2} END{print NR}'
これは現在実行中のMatlabの総数を提供します。
単一のスクリプトでシミュレーション全体をどのように実行できますか?
ベストアンサー1
ユーザーが最大プロセス数を実行できるようにする一般的な方法は、マンページで適切な変更を実行する詳細と例をpam_limits(8)
確認することです。limits.conf(5)
/etc/security/limits.conf
特に設定したいパラメータは次のとおりですnproc
。
nproc
maximum number of processes
マンページでこのパラメータを使用する例:
@faculty soft nproc 20
@faculty hard nproc 50