*2005年12月21日ゼミ資料 *2005年12月21日ゼミ資料 [#x853453d] CENTER:[[12月14日(第29回)>Lab/2005/1214]] << 12月21日(第30回) >> [[2006年1月>Lab/2006/01]] CENTER:[[12月14日(第29回)>Lab/2005/1214]] << 12月21日(第30回) >> [[2006年1月17日(第31回)>Lab/2006/0117]] CENTER:[[研究関係Wikiトップへ戻る>Lab]] #contents **今週の目標 **今週の目標 [#lcea7033] ***テスト ***テスト [#af233e1a] -ベンチマーク --タスクサイズによってどのように変化するか --ネットワーク速度を100Mbpsに変更するとどうなるか ***設計 ***設計 [#mb754466] アルゴリズム決定!!!! ***卒論執筆 ***卒論執筆 [#g9b87bb9] 下書き提出!!!! **先々週のゼミ資料メモ **先々週のゼミ資料メモ [#e31c9552] ***シグナル ***シグナル [#h5c1b68f] SIGALRMではなくSIGMiGを使う ***マイグレーションのコスト ***マイグレーションのコスト [#l1ba2f82] -帯域幅1Gと100Mを切り替えてみる -タスクのサイズは? -粒度の大きさ ***スケジューラの設計 ***スケジューラの設計 [#oa60840d] -1度マイグレーションを行ったらしばらくは行わない? -タスクへの組み込みは? --組み込まれていないタスクへの対応 IDMのコスト -自ノードの負荷の状況 --アルゴリズム --CPU・プロセスのサイズ・I/O **現在の経過 **現在の経過 [#ja33efff] ***アルゴリズム ***アルゴリズム [#q1d47689] http://mikilab.doshisha.ac.jp/dia/research/report/2002/0612/027/report20020612027.html http://icl.cs.utk.edu/news_pub/submissions/annealing-scheduler.pdf ***シグナル ***シグナル [#q09aab54] SIGALRMではなくSIGMiGでも動く(migio2mig.c) ただしsignal -sendする時はSIGMiGではなくSIGLIBCでないとだめ? ***タスクに関する情報収集 ***タスクに関する情報収集 [#ld48043d] 以下のシステムコールは「undefined reference」になる。 BYTE4 proc_get_lifetime(); /* BYTE4 proc_get_lifetime(name) OBJECT_NAME name; タスクの寿命を調べる エラーの時は−1が返る */ BYTE4 self_get_lifetime(); /* BYTE4 self_get_lifetime() タスクの寿命を調べる エラーの時は−1が返る */ sss/proc.hに構造体Proc_infoがある。psで取得できる情報はここから取得可 使い方は……? ***CPUクロックを用いてマイグレーションのコストを計測する ***CPUクロックを用いてマイグレーションのコストを計測する [#z4e51985] RDTSC命令がちゃんと働かない件について。 self_sleep(100)を挟んでrdtscでCPUクロックを計測しても-1.24GHzとかになってしまう。 森さんからもらったコードは以下のようなエラーを吐く。 rdtsc2.c: In function `rdtsc': rdtsc2.c:8: `X' undeclared (first use in this function) rdtsc2.c:8: (Each undeclared identifier is reported only once rdtsc2.c:8: for each function it appears in.) →externを外しXをxにしたら直った。ただし計測するとunsigned long longの範囲を超えるので使えない……。 **ベンチマーク **ベンチマーク [#ob078f3a] http://mikilab.doshisha.ac.jp/dia/smpp/cluster2000/PDF/chapter04.pdf 各ベンチマークの特徴と実行方法がある。超便利。 http://mikilab.doshisha.ac.jp/dia/smpp/cluster2000/ 元はここ「PCクラスタ超入門 2000」。 ***姫野ベンチ ***姫野ベンチ [#jc2b6d26] バージョンアップのため再コンパイルが必要!! ./paramset.sh <gridsize> <ID> <JD> <KD> make これでできあがったbmtが実行ファイル。 gridsizeがXLになるとコンパイルが通らない! ssspc@bootsrvr[6:47:23]yoshi/himeno% ./paramset.sh XL 1 1 1 ssspc@bootsrvr[6:47:36]yoshi/himeno% make /usr/local/sss/bin/i386-unknown-ssscore3.elf-gcc -c -O3 -I /usr/local/sss/mpi/include/ himenoBMTxps.c himenoBMTxps.c:56: size of array `a' is too large himenoBMTxps.c:56: size of variable `a' is too large *** Error code 1 Stop in /usr/sss/home/yoshi/himeno. Lではコンパイルは通るが実行してもsleepしてしまう(原因不明)。 ***bmt-xs111をnode1のみで実行した結果 ***bmt-xs111をnode1のみで実行した結果 [#ua6ba3be] pstart 1 : bmt-xs111 bmt node1: argc=5 argv=[pstart 1 : bmt-xs111 bmt] :-)Sequential version array size mimax = 33 mjmax = 33 mkmax = 65 Parallel version array size mimax = 33 mjmax = 33 mkmax = 65 imax = 32 jmax = 32 kmax =64 I-decomp = 1 J-decomp = 1 K-decomp =1 Start rehearsal measurement process. Measure the performance in 3 times. MFLOPS: 389.009177 time(s): 0.014631 6.229688e-03 Now, start the actual measurement process. The loop will be excuted in 12302 times This will take about one minute. Wait for a while cpu : 60.080377 sec. Loop executed for 12302 times Gosa : 1.009371e-11 MFLOPS measured : 388.468841 Score based on Pentium III 600MHz : 4.737425 !! Task(BMT___:0x4da0000) Finished !! (cmd="bmt-xs111",ret=0) ***bmt-xs111をnode1・3で実行した結果 ***bmt-xs111をnode1・3で実行した結果 [#rc17c635] (当然だけど不可能) start 1 3 : bmt-xs111 bmt ode1: argc=6 argv=[pstart 1 3 : bmt-xs111 bmt] :-)Invalid number of PE Please check partitioning pattern or number of PE ***bmt-xs112をnode1・3で実行した結果 ***bmt-xs112をnode1・3で実行した結果 [#wf223e42] pstart 1 3 : bmt-xs112 bmt node1: argc=6 argv=[pstart 1 3 : bmt-xs112 bmt] :-)Sequential version array size mimax = 33 mjmax = 33 mkmax = 65 Parallel version array size mimax = 33 mjmax = 33 mkmax = 35 imax = 32 jmax = 32 kmax =33 I-decomp = 1 J-decomp = 1 K-decomp =2 Start rehearsal measurement process. Measure the performance in 3 times. MFLOPS: 680.478225 time(s): 0.008364 6.229688e-03 Now, start the actual measurement process. The loop will be excuted in 21520 times This will take about one minute. Wait for a while cpu : 58.051122 sec. Loop executed for 21520 times Gosa : 1.009371e-11 MFLOPS measured : 703.306717 Score based on Pentium III 600MHz : 8.576911 ***bmt-M111をnode1で実行した結果 ***bmt-M111をnode1で実行した結果 [#nb87c765] :-)pstart 1 : bmt-M111 bmt node1: argc=5 argv=[pstart 1 : bmt-M111 bmt] :-)Sequential version array size mimax = 129 mjmax = 129 mkmax = 257 Parallel version array size mimax = 129 mjmax = 129 mkmax = 257 imax = 128 jmax = 128 kmax =256 I-decomp = 1 J-decomp = 1 K-decomp =1 Start rehearsal measurement process. Measure the performance in 3 times. MFLOPS: 347.729792 time(s): 1.182859 1.693779e-03 Now, start the actual measurement process. The loop will be excuted in 152 times This will take about one minute. Wait for a while cpu : 59.866281 sec. Loop executed for 152 times Gosa : 1.301508e-03 MFLOPS measured : 348.108824 Score based on Pentium III 600MHz : 4.245230 ***bmt-M112をnode1・3で実行した結果 ***bmt-M112をnode1・3で実行した結果 [#w16e3681] pstart 1 3 : bmt-M112 bmt node1: argc=6 argv=[pstart 1 3 : bmt-M112 bmt] :-)Sequential version array size mimax = 129 mjmax = 129 mkmax = 257 Parallel version array size mimax = 129 mjmax = 129 mkmax = 131 imax = 128 jmax = 128 kmax =129 I-decomp = 1 J-decomp = 1 K-decomp =2 Start rehearsal measurement process. Measure the performance in 3 times. MFLOPS: 637.233120 time(s): 0.645471 1.693779e-03 Now, start the actual measurement process. The loop will be excuted in 278 times This will take about one minute. Wait for a while cpu : 59.783793 sec. Loop executed for 278 times Gosa : 1.162861e-03 MFLOPS measured : 637.551179 Score based on Pentium III 600MHz : 7.775014 **関連ページ **関連ページ [#rb31ba58] -[[Lab/SSS-PC/アプリケーション開発について]] -[[Lab/SSS-PC/シグナル]] -[[Lab/卒業論文]] -[[Lab]]