アルゴリズム決定!!!!
下書き提出!!!!
SIGALRMではなくSIGMiGを使う
IDMのコスト
http://mikilab.doshisha.ac.jp/dia/research/report/2002/0612/027/report20020612027.html
http://icl.cs.utk.edu/news_pub/submissions/annealing-scheduler.pdf
SIGALRMではなくSIGMiGでも動く(migio2mig.c)
ただしsignal -sendする時はSIGMiGではなくSIGLIBCでないとだめ?
以下のシステムコールは「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で取得できる情報はここから取得可
使い方は……?
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の範囲を超えるので使えない……。
http://mikilab.doshisha.ac.jp/dia/smpp/cluster2000/PDF/chapter04.pdf
各ベンチマークの特徴と実行方法がある。超便利。
http://mikilab.doshisha.ac.jp/dia/smpp/cluster2000/
元はここ「PCクラスタ超入門 2000」。
バージョンアップのため再コンパイルが必要!!
./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してしまう(原因不明)。
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)
(当然だけど不可能)
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
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
:-)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
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