[an error occurred while processing this directive]
[an error occurred while processing this directive]
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
[an error occurred while processing this directive]