Mercurial > hg > Papers > 2015 > sugi-master
comparison paper/appendix1.tex @ 28:46a09e9020a3
modify chapter1
author | sugi |
---|---|
date | Thu, 05 Feb 2015 04:23:37 +0900 |
parents | a27c97e0bb15 |
children | 9d3fadcc379d |
comparison
equal
deleted
inserted
replaced
27:a27c97e0bb15 | 28:46a09e9020a3 |
---|---|
19 \end{center} | 19 \end{center} |
20 \caption{TORQUE の構成} | 20 \caption{TORQUE の構成} |
21 \label{fig:torque} | 21 \label{fig:torque} |
22 \end{figure} | 22 \end{figure} |
23 | 23 |
24 ユーザーはマスターを用いてTORQUEを利用する。ジョブを記述したシェルスクリプトを用意し、スケジューラーに投入する。投入するタイミングで、利用したいマシン台数、CPUコア数を指定することができる。(ソースコード \ref {src:torque}) | 24 ユーザーはマスターを用いてTORQUEを利用する。ジョブを記述したシェルスクリプトを用意し、スケジューラーに投入する。投入するタイミングで、利用したいマシン台数、CPUコア数を指定することができる。 |
25 | |
26 TORQUE は、ジョブに必要なマシンが揃い次第、受け取ったジョブを実行する。 | 25 TORQUE は、ジョブに必要なマシンが揃い次第、受け取ったジョブを実行する。 |
27 | 26 |
28 \subsubsection {TORQUE のジョブの書き方} | 27 \subsubsection {TORQUE のジョブの書き方} |
29 TORQUEのジョブは、シェルスクリプトにより記述する。 | 28 TORQUEのジョブは、シェルスクリプトにより記述する。 |
30 TORQUEのジョブは実行される際に、環境変数が与えられる。 | 29 TORQUEのジョブは実行される際に、環境変数が与えられる。 |
30 これらの環境変数は、ジョブを投入する際にオプションでも変更することができる。 | |
31 | 31 |
32 \begin{itemize} | 32 \begin{itemize} |
33 \item {\ttfamily PBS\_NODEFILE}\\ | 33 \item {\ttfamily PBS\_NODEFILE}\\ |
34 すべての参加マシンが列挙されているファイルへのパス | 34 すべての参加マシンが列挙されているファイルへのパス |
35 \item {\ttfamily PBS\_NUM\_NODES}\\ | 35 \item {\ttfamily PBS\_NUM\_NODES}\\ |
37 \item{\ttfamily PBS\_NUM\_PPN}\\ | 37 \item{\ttfamily PBS\_NUM\_PPN}\\ |
38 参加マシン一台あたりのコア数 | 38 参加マシン一台あたりのコア数 |
39 \item{\ttfamily PBS\_JOBNAME}\\ | 39 \item{\ttfamily PBS\_JOBNAME}\\ |
40 ジョブの名前 | 40 ジョブの名前 |
41 \end{itemize} | 41 \end{itemize} |
42 これらの環境変数は、ジョブを投入する際にオプションでも変更することができる。 | |
43 | 42 |
43 ソースコード \ref{src:torque1}はスレーブに、{\ttfamily PBS\_NODEFILE} に記述されているマシン名の順番にログインさせ、hostnameコマンドを実行させる例題である。 | |
44 \begin{lstlisting}[label=src:torque1, caption=指定されたマシンにログインして hostname コマンドを走らせる例] | 44 \begin{lstlisting}[label=src:torque1, caption=指定されたマシンにログインして hostname コマンドを走らせる例] |
45 function run() { | 45 function run() { |
46 while read node | 46 while read node |
47 do | 47 do |
48 ssh $node hostname < /dev/null | 48 ssh $node hostname < /dev/null |
50 wait | 50 wait |
51 } | 51 } |
52 run < $PBS_NODEFILE | 52 run < $PBS_NODEFILE |
53 \end{lstlisting} | 53 \end{lstlisting} |
54 | 54 |
55 ソースコード \ref{src:torque1}はスレーブに、{\ttfamily PBS\_NODEFILE} に記述されているマシン名の順番にログインさせ、hostnameコマンドを実行させる例題である。 | 55 {\ttfamily PBS\_NODEFILE} の中に含まれるマシン名はコア数分重複しているので扱う際に注意が必要である。 |
56 | 56 |
57 ジョブを投入するには、 qsub コマンドを用いる。(ソースコード \ref{src:torque2}) | |
57 \begin{table}[html] | 58 \begin{table}[html] |
58 \lstinputlisting[label=src:torque, caption=10台(1台あたり4コア)で走らせる例]{source/Torque.sh} | 59 \lstinputlisting[label=src:torque2, caption=10台(1台あたり4コア)で走らせる例]{source/Torque.sh} |
59 \end{table} | 60 \end{table} |
60 | 61 |
62 実際にAliceのリングトポロジーによる実験を行うタスクはソースコード \ref{src:torque5}である | |
63 | |
64 \begin{lstlisting}[label=src:torque5, caption=Alice でリングトポロジーの実験に使ったジョブ] | |
65 #!/bin/bash | |
66 # | |
67 # Alice Ring Topology | |
68 # | |
69 #PBS -q dque | |
70 #PBS -N AliceRingTopology | |
71 #PBS -l walltime=00:05:00 | |
72 | |
73 alicepath=/home/mass/share/student/k138563 | |
74 node_num=`expr $PBS_NUM_NODES - 1` # TopologyManager の分を1引く | |
75 port=10000 # 利用するポート番号 | |
76 count=100 # リングを回る回数 | |
77 size=4096 # リングを回すメッセージのサイズ | |
78 | |
79 function run() { | |
80 read serv | |
81 ssh $serv "ruby $alicepath/ring.rb $node_num > /tmp/ring.dot" < /dev/null | |
82 ssh $serv killall java < /dev/null | |
83 # トポロジーマネージャーの起動 | |
84 ssh $serv java -cp $alicepath/Alice.jar alice.topology.manager.TopologyManager -p $port -conf /tmp/ring.dot < /dev/null & | |
85 cnt=0 | |
86 while read node # 用意されたスレーブがなくなるまで繰り返す | |
87 do | |
88 ssh $node killall java < /dev/null | |
89 # トポロジーマネージャーに対して参加表明を行う | |
90 ssh $node java -cp $alicepath/Alice.jar alice.test.topology.ring.RingTopology -host $serv -port $port -p $port -count $count -size $size -nodeNum $node_num < /dev/null & | |
91 cnt=`expr $cnt + 1` | |
92 done | |
93 wait | |
94 } | |
95 | |
96 uniq $PBS_NODEFILE /tmp/nodes #重複しているノード名の削除 | |
97 run < /tmp/nodes | |
98 \end{lstlisting} | |
61 | 99 |
62 \newpage | 100 \newpage |
63 \def\thesection{付録\Alph{section}} | 101 \def\thesection{付録\Alph{section}} |
64 \section[ Topology Manager]{Topology Manager} | 102 \section[ Topology Manager]{Topology Manager} |
65 Aliceは複数のノードで構成され、相互に接続される。通信するノードはURLにより直接指定するのではなくTopology Managerで管理する。 | 103 Aliceは複数のノードで構成され、相互に接続される。通信するノードはURLにより直接指定するのではなくTopology Managerで管理する。 |