Phoenix

並列分散計算ライブラリ、Phoenixの使い方です。

インストール

cvs -d :pserver:anonymous@oop7.is.s.u-tokyo.ac.jp:/roots/phoenix login
cvs -d :pserver:anonymous@oop7.is.s.u-tokyo.ac.jp:/roots/phoenix co phnx
./configure --prefix=/home/kei/phoenix
make
make install
oop7.is.s.u-tokyo.ac.jpのIPは133.11.12.147です。(2004/7/7現在)

Hello Test

まずはsend / recvのテスト。 このプログラムは、一台のマシンで起動し、 fork()で親プロセスと子プロセスに分離します。 親と子は別々にph_initを呼び、初期化を行います。
さらに、ph_vps_create_rangeからの三行で、それぞれのプロセスがVirtual Node を担当することを宣言します。ここでは、子が[0-16)を、親が[16-32)を 宣言しています。 なお、ph_vps_create_rangeは、「Virtual Nodeの集合を表す構造体を作る」 だけなので、assumeしなければただの数字の集合です。 そして、destroyというのも単にメモリをfreeしているだけです。
Virtual Nodeが决まると、メッセージを送受信することができます。 ここではchildが24番のVirtual Nodeに"HELLO"というメッセージを送っています。 メッセージはmsg->bodyで中身を見ることができます。 destroyは先程と同じく、ただのfreeです。
最後に、ph_finalizeで終了処理を行っています。 この例ではVirtual Nodeをassumeし合ったプロセス間でメッセージの やりとりをしましたが、ph_sendは自分のプロセスにVirtual Nodeが 関連付けられていなくてもメッセージを送信することができます。

migration test