1

コマンドラインからの入力として 2 つの double を渡す C++ プログラムがあります。

int main(int argc, char *argv[]){
    double a,b;
    a = atof(argv[1]);
    b = atof(argv[2]);
    further code.....

ユーティリティを使用してクラスターでコードを実行し、qsub「jobsub.sh」という名前の Bash スクリプトを使用して、次のようなジョブを送信します。

#!/bin/csh -f
hostname
cd /home/roy/codes/3D             # Change directory first -- replace Mysubdir
set startdir = `pwd`               # Remember the directory we're in
if( ! -d /scratch/$USER ) then
    mkdir /scratch/$USER       # Create scratch directory
endif                              # If it does not exist
#cp infile12 /scratch/$USER     # Copy input file to scratch directory
cd /scratch/$USER                  # Change to scratch directory
#rm *.*
$HOME/codes/3D/autoA100.out 2.1 2.2          # Run a program
cp * $startdir         # Copy outputfiles back to where we started

端末でqsub jobsub.sh.

ただし、異なる値に対して同じ実行可能ファイルを実行し、異なるコアで並行してa実行したいと考えています。次のようなことができるように、Bashスクリプトにループbを書くことは可能ですか?for

for i=1;i<=10;i++ {
   $HOME/codes/3D/autoA100.out 2+i*0.1 2+i*0.2
}
4

2 に答える 2