OpenGridSchedulerは難しすぎました。代わりにTorqueを使ってます
下記はごくごく浅い内容となってます。

ジョブスケジュールリング
現在Open Grid Schedulerとして存在するそうな。中身は Sun Grid Engine 6.2u5 と互換。
rpmを提供してくれるSon of Grid Engineもある。

このアプリケーションは、ジョブ投入と計算機リソース(cpu/core,メモリー,利用時間)の管理を担当します。
これがあるから大規模計算ができると言う訳ではない。大規模な計算を滞りなく計算機自体のリソースを十分に活用させるための
仕組み、枠組みだけである。

多数のcoreを強調させ、大規模な計算を実現させる道具は、OpenMPIらである。
ジョブスケジュールリングとは関係ないお話です。

過去の記事SunGridEngine?

システム構成

パラメータ備考
sge-rootディレクトリ/Appl/OpenGridScheduler全てのホスト(c,c101,c102,,,)からアクセス可能な場所
NFSで共有させる
セル名default単一のクラスターサイトを想定
管理ユーザsgeadminnis、ldapらで用意されたアカウント
sge_qmasterポート番号6444
sge_execポート番号6445
マスターホストcGrid Engine システムを制御するホスト。
マスターデーモンsge_qmaster
スケジューリングデーモンsge_scheddが動く
シャドーマスターホスト作成しないsge_qmaster機能のバックアップホスト
スプール方式ファイルシステム
実行ホストc101,c102,c103,c104,c105ジョブを実行するマシン
sge_execdが働く
グループID20000-20100gidと被らない範囲を指定
この範囲分100個のジョブが実行できる
管理ホストc待ち行列の再構成、利用者の管理
マスターホストは自動的に管理ホストにもなる
マスターホストでqconf -ah ホスト名で追加
発行ホストcバッチジョブの発行と制御を行うマシン
マスターホストは自動的に発行ホストにもなる
マスターホストでqconf -as ホスト名で追加

ユーザ作成

各ノードを監視して、そして実際にOpenGridSchedulerを稼働させるユーザを作成します。
このサイトはすべてsambaによるActiveDirectoryでユーザ管理してます。
参照samba/ユーザ登録

[root@c ~]# /opt/samba/bin/samba-tool group add sge --group-scope=Global --group-type=Security \
--description='OpenGridSchedulerグループ' --gid-number=2003 --nis-domain=sybyl
Added group sge
[root@c ~]#
[root@c ~]#

これでgroup sge が gid 2003 として登録された。次にsgeを管理するユーザsgeadminを作成します。

[root@c ~]# /opt/samba/bin/samba-tool user add sgeadmin --must-change-at-next-login --random-password \
--use-username-as-cn --description=OpenGridScheduler管理者 \
--home-drive=z --home-directory="\\\c\home\sgeadmin" \
--uid=sgeadmin --uid-number=1111 --gid-number=2003 --gecos="Supervisor of OpenGridScheduler" --login-shell=/bin/bash \
--nis-domain=sybyl --unix-home=/home/sgeadmin
User 'sgeadmin' created successfully
[root@c ~]#

NFS共有

SGE_ROOTをNFS共有させます。

[root@c ~]# vi /etc/exports
/Appl   c101(rw) c102(rw) c103(rw) c104(rw) c105(rw)
[root@c ~]#
[root@c ~]# exportfs -av
exporting c101.chaperone.jp:/Appl
exporting c102.chaperone.jp:/Appl
exporting c103.chaperone.jp:/Appl
exporting c104.chaperone.jp:/Appl
exporting c105.chaperone.jp:/Appl
[root@c ~]#

構築

ソースはここから取得可能 http://sourceforge.net/projects/gridscheduler/files/
ここではバージョン2011.11p1となるGE2011.11p1.tar.gzを取得しました。

*構築に必要ならライブラリ関係をインストール
[root@c ~]# yum -y install openmotif-devel libXpm-devel ncurses-devel pam-devel tcsh
 
[root@c ~]# cd /Appl/Linux/src
[root@c src]# wget http://downloads.sourceforge.net/project/gridscheduler/GE2011.11p1/GE2011.11p1.tar.gz
[root@c src]# gzip -cd GE2011.11p1.tar.gz | tar xf -
[root@c src]#
[root@c src]# cd GE2011.11p1/source
[root@c source]# 
[root@c source]# ./scripts/zerodepend
[root@c source]# ./aimk -no-java -no-jni -no-secure -no-gui-inst -spool-classic    *./aimk clean で初期化できます

コンパイルはこれで完了。
GUIなインストール版を作りたいのならこちらを参照 OpenGridScheduler/GUI
次に、 chaperone-sge-2011.11p1.tar.gz な配布可能な形に成型します。

[root@c source]# ./scripts/distinst -basedir /tmp -vdir sge-chaperone-2011.11p1 \
                     -all -nobdb -noexit -noopenssl
 
[root@c source]#
[root@c source]# cd /tmp
[root@c tmp]# tar cfz ./sge-chaperone-2011.11p1.tar.gz ./sge-chaperone-2011.11p1

作った配布用ファイル sge-chaperone-2011.11p1.tar.gz を使ってインストールします
*「./scripts/distinst」で「-local」を指定して、そのままインストールでも構わないのだが、クラスターマシン毎にインストールとなれば、配布形式なファイルを作った方がいいから。

インストール

ジョブスケジュールリングを取り仕切るサイト、ジョブを実施するサイト、ジョブを発行するサイトなど用途に合わせて
構築したプログラムsge-chaperone-2011.11p1.tar.gzをインストールします。

OpenGridScheduler/マスターホスト

OpenGridScheduler/実行ホスト

テスト実施

極めて簡単なテストを実施してみます。
まずジョブを投入できるマシンの確認

[root@c ~]# source /Appl/OpenGridScheduler/default/common/settings.sh
[root@c ~]# qconf -ss
no submit host defined
[root@c ~]#

な状態でジョブ投入ホストが定義されていない。なので、

[root@c ~]# qconf -as c
c.cerius.local added to submit host list
[root@c ~]#

とマスターホストがジョブ投入サイトも兼ねるようにする。
そしてから環境変数を読み込ませて、

[illya@c ~]$ source /Appl/OpenGridScheduler/default/common/settings.sh

まずは利用可能な実行ホストのリストを出してみる

[illya@c ~]$ qhost
HOSTNAME                ARCH         NCPU  LOAD  MEMTOT  MEMUSE  SWAPTO  SWAPUS
-------------------------------------------------------------------------------
global                  -               -     -       -       -       -       -
c101                    linux-x64       1  0.00    1.8G   63.4M    2.0G     0.0
c102                    linux-x64       1  0.00    1.8G   62.6M    2.0G     0.0
c103                    linux-x64       1  0.00    1.8G   62.6M    2.0G     0.0
[illya@c ~]$

ジョブを投入するとこれらの内のどれかに渡されて実行される事になる。渡すジョブはサンプルが /Appl/OpenGridScheduler/examples/jobs にあり、ここでは simple.sh を使用します。
このsimple.shは、

#!/bin/sh
#$ -S /bin/sh
date
sleep 20
date

と極めて簡単なシェルスクリプトです。これを実行します

[illya@c ~]$ qsub /Appl/OpenGridScheduler/examples/jobs/simple.sh
Your job 1 ("simple.sh") has been submitted
[illya@c ~]$
[illya@c ~]$
[illya@c ~]$ qstat
job-ID  prior   name       user   state submit/start at     queue                     slots ja-task-ID
------------------------------------------------------------------------------------------------------
      1 0.55500 simple.sh  illya  r     08/02/2014 13:46:42 all.q@c101.cerius.local       1
[illya@c ~]$ qstat
[illya@c ~]$

終了すると、ログファイルが書き出されます。「e」はエラーの標準出力結果、「o」は標準出力の結果です

[illya@c ~]$ ls -l
合計 4
-rw-r--r-- 1 illya fate  0  8月  2 13:46 2014 simple.sh.e1
-rw-r--r-- 1 illya fate 58  8月  2 13:47 2014 simple.sh.o1
[illya@c ~]$

トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2016-05-02 (月) 16:30:32 (474d)