setenv OMP_NUM_THREADS n
#pragma omp parallel num_threads(n)
もしくは
omp_set_num_threads(n);
SR11000では、NQSを利用することができます。 システムとしては、キューに様々なユーザがジョブを投げて順に処理をしてくれることになります。 メリットとしては完全に単独で実行されるので理論上最高速で動きます。 デメリットとしてはノードが空いていない限り使えない(ので、場合によってはジョブを投げてから結果が返ってくるまで大分時間がかかる)ということと、 インタラクティブな使い方(例えばデータ学習させるときに、状況を表示して人間がそれに該当する教師データを与える等)ができないことがあります。
以下のようなことを書いたファイル(ジョブファイル)を作ります。各パラメータがどういう意味かは基盤センターがサポートするべき情報。
#!/bin/csh 使用シェル #@$-q S1 投げるキューの名前 #@$-N 4 使用するノード数 #@$-J SS ジョブタイプ #@$-o OUT 標準出力の出力先ファイル #@$-e ERR 標準エラーの出力先ファイル #@$-lT 00:10:00 制限時間 mpirun -n 4 -np 32 hoge これ以降は普通にコマンド列
次に、そのジョブファイルをジョブキューへ投げます。とりあえずこれで完了。
% qsub foo.job foo.jobは↑で作ったジョブファイル
もはや必要ない情報なので、別ページに分離しました。