コマンドラインからの入力として 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
}