export GAUSS_LFLAGS="-nodefile $PBS_NODEFILE”
というoptionが有効と書いてあるサイトもあるが実際やってみるとEM64L-G09RevA.01ではGAUSS_LFLAGSは有効でないためcomに%lindaworks=を書くしかない。
例えば、(2 SMP+ N linda)/nodeならば
%nprocshared=2
%lindaworks=host1:N,host2:N,host3:N,...
(全core数はg09が取れるので%lindaworks=host1,host2,host3,...とhost名だけ書くとnprocsharedからlinda数/nodeを自動計算する。)
とcomを書かねばならないが、PBSでは$PBS_NODEFILEにhost listが書いてあるのでlindaworkersの書式に直すだけである。
には
%lindaworkers=LINDA
と書いておいて
PBS用のscriptは
例1、lindaのみでcore数=linda数なら
FILE=somefile
LINDA=`cat $PBS_NODEFILE | uniq | tr '¥n' "," | sed 's/,$//' | sed 's/:$//'`
echo "LINDA=",$LINDA #---確認で書いているだけ
echo "FILE=",$FILE #---確認で書いているだけ
sed "s/LINDA/$LINDA/" $FILE.com >temp.com
g09 temp.com $FILE.log
例2、nprocsharedからlinda数は自動計算
例1のままで$FILE.comに%nprocshared=を書く。
例3、linda数をcore数から自動計算しないで2 linda/nodeとしたい。
LINDA=`cat $PBS_NODEFILE | uniq | sed 's/$/:2/' | tr '\n' "," | sed 's/,$//' | sed 's/:$//' `
:2が 2 linda/nodeの意味
なお、lindaが有効でないOS(x86系以外)で%lindaworkers=を書いてもエラーにならず、logにもlindaを使っているかのような表示が出るが実際はlindaは使われない。