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

提供: Eospedia
移動: 案内検索
(並列処理の比較2)
(並列処理の比較2)
 
(同じ利用者による、間の7版が非表示)
行1: 行1:
 [[PIONE]]は実行後にその処理結果をログファイルとして出力します。このログファイルをシーケンス図やグラフにすることで、処理の流れや並列の状況を確認することができます。
+
 [[PIONE]]は実行後にその処理結果をログファイルとして出力します。ここではログファイルをシーケンス図やグラフなどで視覚化し、処理の流れや並列の状況を確認する方法を示します。
  
 
== [[ProM]]を利用したログファイルの可視化 ==
 
== [[ProM]]を利用したログファイルの可視化 ==
行13: 行13:
 
これを[[ProM]]でインポートできる形式である[[XES]]ファイルに変換します。<br>
 
これを[[ProM]]でインポートできる形式である[[XES]]ファイルに変換します。<br>
 
<br>
 
<br>
変換処理は下記のように行います。<br>
+
変換処理は[[pione log format]]で行います。<br>
 
<pre>
 
<pre>
 
pione log format TextSwapSed/pione-process.log > log.xes
 
pione log format TextSwapSed/pione-process.log > log.xes
 
</pre>
 
</pre>
 
変換ファイル名の拡張子を.xes以外にすると[[ProM]]で読み取れない場合があるので、ご注意ください。<br>
 
変換ファイル名の拡張子を.xes以外にすると[[ProM]]で読み取れない場合があるので、ご注意ください。<br>
 +
<br>
 +
<br>
 +
(補足):--log-idを使用すると指定したIDのみのログとして出力することができます。IDが分からない場合はpione log list-idを使用するとID一覧を見ることができますのでここから指定すると良いでしょう。<br>
 
<br>
 
<br>
  
行61: 行64:
 
[[画像:PIONE-PNML-Basic3-ProM-1.png]]<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>
 
<br>
 
<br>
  
行80: 行83:
  
 
=== 並列処理の比較2 ===
 
=== 並列処理の比較2 ===
1つのRuleが大きい処理について並列化を行って、ログを比較してみます。<br>
+
1つのRuleが大きい処理について並列化を行って、ログを比較してみます。[[PIONEチュートリアル-PNML#応用1(Eosコマンドへの利用)]]のコマンドのログを見てみましょう。1つのRuleでいくつもの2D投影像を作成しているため処理が大きくなっています。<br>
 
<br>
 
<br>
使用する[[pione定義書]]あるいは[[PNML]]と入出力のファイル数などから効率の良いタスク数を設定することが重要です。<br>
+
<p align="center">[[画像:PIONE-PNML-Advanced1-ProM.png]]<br>
 +
-tなし<br>
 +
[[画像:PIONE-PNML-Advanced1-ProM-2.png]]<br>
 +
t=2<br></p>
 
<br>
 
<br>
今度は[[PIONEチュートリアル-PNML#応用1(Eosコマンドへの利用)]]のコマンドのログを確認します。<br>
+
このコマンドでは全体の処理が2分程度だったのが、t=2とすることで1分程度に削減されています。<br>
 +
このように使用する[[PIONE定義書]]あるいは[[PNML]]と入出力のファイル数などから効率の良いタスク数を設定することが重要です。<br>
 
<br>
 
<br>

2014年12月11日 (木) 04:56時点における最新版

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

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

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

ログファイルの確認

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

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

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

変換処理はpione log formatで行います。

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

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


(補足):--log-idを使用すると指定したIDのみのログとして出力することができます。IDが分からない場合はpione log list-idを使用するとID一覧を見ることができますのでここから指定すると良いでしょう。

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間の時間も少なくなっています。しかし、タスクの準備と後処理の時間が増えているので、効率があまり変わりません。従って、この処理の並列化はあまり有効ではないと分かります。

並列処理の比較2

1つのRuleが大きい処理について並列化を行って、ログを比較してみます。PIONEチュートリアル-PNML#応用1(Eosコマンドへの利用)のコマンドのログを見てみましょう。1つのRuleでいくつもの2D投影像を作成しているため処理が大きくなっています。

PIONE-PNML-Advanced1-ProM.png
-tなし
PIONE-PNML-Advanced1-ProM-2.png
t=2


このコマンドでは全体の処理が2分程度だったのが、t=2とすることで1分程度に削減されています。
このように使用するPIONE定義書あるいはPNMLと入出力のファイル数などから効率の良いタスク数を設定することが重要です。