1. 程式人生 > >超算作業例子

超算作業例子

#!/bin/bash
#https://blog.csdn.net/qianyun6/article/details/4871343
#PBS -N gputest
#PBS -l nodes=2:ppn=36  申請2個節點,每個節點36個處理器
#PBS -l walltime=240:00:00
#PBS -q low
#PBS -j oe
cd $PBS_O_WORKDIR  
#$PBS_O_WORKDIR是一個環境變數
#modify the input file
INPUT=222.m #你要執行的主程式的名字
#do not change the line bellow
OLDDIR=`pwd`
#執行pwd命令,並把命令結果放在OLDDIR變數裡面,也就相當於把#當前目錄路徑放到變數裡面儲存.
cp $INPUT .$PBS_JOBID.input.m  #將輸入檔案拷貝到指定位置
EXEC_HOST=`head -n 1 $PBS_NODEFILE`  
#執行head -n 1 命令,該命令檢視 $PBS_NODEFILE狀態,並把結#果送到EXEC_HOST變數儲存
NP=`cat $PBS_NODEFILE | wc -l`
#執行cat $PBS_NODEFILE列印命令,並把結果通過"管道"傳給
#wc -l 命令,該命令統計檔案行數

sed -i "s/numpar/$NP/g" .$PBS_JOBID.input.m
#sed -i 就是直接對文字檔案進行操作的
#s/numpar/$NP/g是正則表示式,也就是sed 執行的操作
#.$PBS_JOBID.input.m是sed操作的檔案

ssh $EXEC_HOST "cd $OLDDIR ;
#ssh登陸,並切換到 $OLDDIR目錄
/public/software/matlab/2017Ra/bin/matlab  -nodisplay < .$PBS_JOBID.input.m"

#啟動matlab
rm -rf .$PBS_JOBID.input.m
#刪除輸入作業