「PIONEチュートリアル-XES」の版間の差分

提供: Eospedia
移動: 案内検索
行59: 行59:
 
<br>
 
<br>
 
また、ColorやShape/SizeをEventにするとschedule, start, completeなどの違いが分かりやすくなります。<br>
 
また、ColorやShape/SizeをEventにするとschedule, start, completeなどの違いが分かりやすくなります。<br>
 +
[[画像:PIONE-PNML-Basic3-ProM-1.png]]<br>
 
[[画像:PIONE-PNML-Basic3-ProM1.png]]<br>
 
[[画像:PIONE-PNML-Basic3-ProM1.png]]<br>
 
上図では茶四角がschedule、桃丸がstart、水三角がcompleteとなっています。今回はシングルタスクで行っているので、6 ~ 9行目、10 ~ 13行目に着目してみると順番に逐次処理していることがよく分かります。また、1, 2行目の紫四角がsuspend、緑菱形がresumeとなっていますので、その間でMainで呼び出しから返ってくるまでの時間を見ることもできます。<br>
 
上図では茶四角がschedule、桃丸がstart、水三角がcompleteとなっています。今回はシングルタスクで行っているので、6 ~ 9行目、10 ~ 13行目に着目してみると順番に逐次処理していることがよく分かります。また、1, 2行目の紫四角がsuspend、緑菱形がresumeとなっていますので、その間でMainで呼び出しから返ってくるまでの時間を見ることもできます。<br>

2014年11月6日 (木) 06:01時点における版

 PIONEは実行後にその処理結果をログファイルとして出力します。このログファイルをシーケンス図やグラフにすることで、処理の流れや並列の状況を確認することができます。

ProMを利用したログファイルの可視化

 ProMを用いて、ログファイルを閲覧する方法を示します。

ログファイルの確認

 PIONEコマンドで出力されるログファイルから処理の流れを確認してみましょう。
PIONEチュートリアル-PNML#基本3(複数種類の入出力がある処理)を実行ログを確認してみます。

ログファイルからXESファイルへの変換

 PIONEコマンドを実行すると-bで指定したディレクトリ内にログファイル(pione-process.log)が出力されます。
これをProMでインポートできる形式であるXESファイルに変換します。

変換処理は下記のように行います。

pione log format TextSwapSed/pione-process.log > log.xes

変換ファイル名の拡張子を.xes以外にするとProMで読み取れない場合があるので、ご注意ください。

XESファイルをProMで開く

 ProMを起動後、まずウィンドウの右上にあるimport...ボタンを押すとファイルダイアログが開きますので、閲覧したいXESファイルを選択します。
ProM3.png

 選択したXESファイルが表示されますので、次はウィンドウの右側にある▼(Use resource)ボタンを押します。
ProM4.png

 すると、下記のようなActionsが表示されますので、表示したい内容に合わせてActionを選択し、下部のStartボタンを押すとグラフや図が表示されます。今回はAnalyze using Dotted Chartを選択してみましょう。
ProM5.png

Dotted Chartでのログ閲覧

 Dotted Chartでの閲覧内容を示します。

ProM6.png

Component type: ドットを表示するコンポーネントを選択します。
Time option: タイムラインの種類を選択します。
Time sort (chart): タイムラインの間隔を設定します。
Color By: ドットの色分けのルールを選択します。
Size/Shape By: ドットのサイズや形を設定します。(Size shows # of eventsが無効のとき)
Sort By: 各行のソートルールを選択します。
Mouse Mode: マウス操作のモードを選択します。
Updateボタン: 上記の設定を反映して再描画します。


 では、PIONEチュートリアル-PNML#基本3(複数種類の入出力がある処理)のログを確認してみましょう。
まずはTime optionをRelative(Ratio)(Time)に設定すると、タイムラインの全体像が見えるようになります。そして、コンポーネントをTask IDに設定してみましょう。
PIONE-PNML-Basic3-ProM-1.png
PIONE-PNML-Basic3-ProM.png
上図では1, 2行目でMainRule、5行目からTextSed、10行目からTextSwapの処理の流れを見ることができます。

また、ColorやShape/SizeをEventにするとschedule, start, completeなどの違いが分かりやすくなります。
PIONE-PNML-Basic3-ProM-1.png
PIONE-PNML-Basic3-ProM1.png
上図では茶四角がschedule、桃丸がstart、水三角がcompleteとなっています。今回はシングルタスクで行っているので、6 ~ 9行目、10 ~ 13行目に着目してみると順番に逐次処理していることがよく分かります。また、1, 2行目の紫四角がsuspend、緑菱形がresumeとなっていますので、その間でMainで呼び出しから返ってくるまでの時間を見ることもできます。

並列処理の比較

 PIONEコマンドを並列で処理したときに意図通りの並列処理をしているかを見てみます。
PIONEチュートリアル-PNML#基本3(複数種類の入出力がある処理)のマルチタスクでの動作ログを比較してみましょう。

PIONE-PNML-Basic3-ProM2-1.png
PIONE-PNML-Basic3-ProM2.png
t=2
PIONE-PNML-Basic3-ProM3-1.png
PIONE-PNML-Basic3-ProM3.png
t=8


t=2では2つずつ, t=8では8つずつそれぞれ並列処理が行われ、Mainのsuspend - resume間の割合も少なくなっています。

PIONE-PNML-Basic3-ProM4-1.png
PIONE-PNML-Basic3-ProM4.png
t=16

しかし、タスク数が多すぎるとタスクの準備と後処理の時間が増えるばかりで、本処理の速さはあまり変わらず逆に効率が悪くなってしまいます。従って、使用するpione定義書あるいはPNMLと入出力のファイル数などから効率の良いタスク数を設定することも重要です。