folon4上での並列版KLIC使用方法

まず、下準備として、

~/pvm3/bin/PM_i386_redhat7_linux2_4

というディレクトリーを掘る。

適当な、KLICの為の作業ディレクトリーを決め、
例えば、~/kl1/pvm/
並列仕様になっているKLICソースを持って来る。
ここでは、~kaneki/kl1/pvm-test/count.kl1 を使用するとすると、

klic -dp -o count count.kl1

とします。
-dp が並列オプション

そうすると、おそらく
~/kl1/pvm/count が出来るので
それを今度は、

~/pvm3/bin/PM_i386_redhat7_linux2_4

にコピーする。
そして、

scout -g pcc

scrun -nodes=16x1 pvmd -e 1 count -p#16#1#300000000

とやって見ると数秒で、

SCore-D 5.0.1 connected.
 Assembling hostlist
Adding host comte00.clusters.ueda.info.waseda.ac.jp to VM!
Adding host comte01.clusters.ueda.info.waseda.ac.jp to VM!
Adding host comte02.clusters.ueda.info.waseda.ac.jp to VM!
Adding host comte03.clusters.ueda.info.waseda.ac.jp to VM!
Adding host comte04.clusters.ueda.info.waseda.ac.jp to VM!
Adding host comte05.clusters.ueda.info.waseda.ac.jp to VM!
Adding host comte06.clusters.ueda.info.waseda.ac.jp to VM!
Adding host comte07.clusters.ueda.info.waseda.ac.jp to VM!
Adding host comte08.clusters.ueda.info.waseda.ac.jp to VM!
Adding host comte09.clusters.ueda.info.waseda.ac.jp to VM!
Adding host comte10.clusters.ueda.info.waseda.ac.jp to VM!
Adding host comte11.clusters.ueda.info.waseda.ac.jp to VM!
Adding host comte12.clusters.ueda.info.waseda.ac.jp to VM!
Adding host comte13.clusters.ueda.info.waseda.ac.jp to VM!
Adding host comte14.clusters.ueda.info.waseda.ac.jp to VM!
Adding host comte15.clusters.ueda.info.waseda.ac.jp to VM!
c0a80033:89fa
Response time is 629 msec

1time(0,0,538729)

らしき実行結果が返ってくるはず。
これでとりあえず実行出来てることが確認できます。

 

細かな説明です。

scout -g pcc 

は score を使用する為の物で、あまりKLICとは関係ありません。

KLICは実行時オプションで、並列する数を指定できるので
基本的には

scrun -nodes=16x1 pvmd -e 1

までは、お約束でいいと思います。
実行ファイルは、
~/pvm3/bin/PM_i386_redhat7_linux2_4
にコピーしないとダメですが
scrun 自体はどこで実行しても~/pvm3/bin/PM_i386_redhat7_linux2_4
にあるファイルを読みに行きます。

次に、

count -p#16#1#300000000

ですが、

-p#16

が並列する数を16に指定しています。

1#300000000

は引数。引数を二つとっています。

通常なら#などいらないはずですが、12time(0,0,280490)
score pvm のバグでこうしないと
引数がうまく渡りません。
というより、こうするとうまく渡るようにKLICが改造されてます。

このソース count.kl1 は単純に2個目の引数で指定した数、
この例なら300000000まで数えるプログラムで、
1個目の引数でそれを並列する個数を決めます。

※ -p 16 と指定したからって、
   16台で爆走するわけではありません。

つまり、試しに、

scrun -nodes=16x1 pvmd -e 1 count -p#16#2#300000000

としてやって見ると

12time(0,0,280490)

となって、半分位になります。

12 の部分は、自分の担当の数えが終ったノードは
自分のノード番号を出力するようにしている為です。
当然この番号はタイミングによって順番通りにはなりません。

このプログラムは非常に拙いものですが、

/usr/klic/src/klic-score-5.0/disttest/

にはKLICが提供するサンプルプログラムが
あります。