卒業研究 JCSPを用いたプログラム開発 05162042 池部理奈
目次 ① JCSPについて 1)JCSP Base Edition 2)JCSP Network Edition 3)JCSPプログラム開発 ② マンデルブロー集合のプログラミング 1)プログラム構成 2)計算時間の結果 ③ まとめ 池部理奈 卒業研究発表 2009.03.03
JCSPについて CSP(Communicating Sequential Process)の概念を Javaで実装するためのライブラリ。 SendProc ReadProc Chan ParaMain パラレルプロセスParaMainの構成 池部理奈 卒業研究発表 2009.03.03
チャネルの種類 One2Oneチャネル Farmer Worker in out Occamではこのタイプのチャネルを使っている 池部理奈 卒業研究発表 2009.03.03
多対一の関係のチャネル Any2Oneチャネル Farmer0 Worker2 Worker1 Worker0 out in これらのチャネルは Any側のどのプロセスが通信するか 確定的でない One2Anyチャネル Farmer0 Worker2 Worker1 Worker0 out in 池部理奈 卒業研究発表 2009.03.03
JCSPの実行形態(1/2) Main P1 P0 P2 JCSPを用いて開発される並列プロセスのプログラムは、主に 2種類の実行形態をとることができる。 1つは、チャネルで接続された複数の並列プロセスを1つのCPU 上で行うタイプ。 P0 P1 P2 Main 計算機(1個のCPU) 池部理奈 卒業研究発表 2009.03.03
JCSPの実行形態(2/2) P1 P0 P2 もう一方の実行形態は、ネットワークに接続された実際の計算機 (ノード)に各プロセスを配置して実行するタイプ。 P0 Main Node0 P1 Node1 P2 Node2 しかし実際の物理的な ネットワークの接続形態は 必ずしもこのようにはなっていない 池部理奈 卒業研究発表 2009.03.03
ネットワーク 物理的なノードの接続形態とソフトウェア上のプロセスの 接続形態を合理的にマッピングする必要が生じる。 Node1 Main P1 Node0 Main P0 Node2 Main P2 JCSPには、このチャネルの接続問題を解決するために CNSというものが用意されている! 池部理奈 卒業研究発表 2009.03.03
CNS server CNS(チャネルネームサーバー)は、ノードのIPアドレスとチャネルの 名前を管理し、各プロセスからの問い合わせに対応するもの。 プログラムの設計時には物理的なネットワークの接続形態を 考慮する必要がなく、大変便利である。 池部理奈 卒業研究発表 2009.03.03
JCSPプログラム開発 一般的なプログラム開発 第一段階 : 一台の計算機内に並列プロセスとして実行 第一段階 : 一台の計算機内に並列プロセスとして実行 第二段階 : 一台の計算機内の複数のJava仮想マシンで ネットワークプログラムとして実行 第三段階 : 実際のネットワークの複数の計算機でネットワーク プログラムを実行 CNS Farmer Worker 第一段階 第二段階 第三段階 池部理奈 卒業研究発表 2009.03.03
マンデルブロー集合のプログラミング プログラムをFarmer部とWorker部に分ける Farmer部 400 400 Farmer 0 Worker 2 Worker 1 Worker 0 池部理奈 卒業研究発表 2009.03.03
計算時間の比較 粒度、Workerの台数、実行形態に注目して、比較。 ① 粒度を変えて時間を比較。(実行形態:第一段階) TPCOREと違い、 Worker3台以上でも繋げられる ① 粒度を変えて時間を比較。(実行形態:第一段階) ② Workerの台数を変えて時間を比較。(実行形態:第一段階) ③ 実行形態による時間の比較。(Worker:1台) CNS Farmer Worker 第一段階 第二段階 第三段階 池部理奈 卒業研究発表 2009.03.03
①と②の結果 ① 粒度が粗いほうが、計算時間は短い。 ② Workerの台数による時間差はあまりない。 ① 粒度が粗いほうが、計算時間は短い。 ② Workerの台数による時間差はあまりない。 池部理奈 卒業研究発表 2009.03.03
③の結果(1/2) CNS Farmer Worker 第一段階 第二段階 第三段階 池部理奈 卒業研究発表 2009.03.03
③の結果(2/2) ネットワークに接続すると、非常に時間がかかる。 また、1台のCPU上で実行させるよりも複数台のCPUで実行させた方が、 約2倍ほどはやくなっている。 池部理奈 卒業研究発表 2009.03.03
なぜCPU複数台のほうがはやい? F W F W 一台のCPU上では送受信を一本の回線で行う ため、時間がかかってしまうと思われる ▼ data W ack data ack ▼ F W 一台のCPU上では送受信を一本の回線で行う ため、時間がかかってしまうと思われる 池部理奈 卒業研究発表 2009.03.03
まとめ 今回は単純な計算だったのでネットワークプログラムで 実行させた場合、通信にかかる時間が計算時間の差に 大きく影響していた。 もっと複雑な計算をさせるプログラムにすれば、 複数台のCPUの方がはやい結果が出ると思われる。 池部理奈 卒業研究発表 2009.03.03