いろいろプログラムを作成しながら、実験している。
今まで、未探索点に対するラベルとして -1 で初期化していたが、unsigned 同士の演算のときは unsigned の方が良いと思い、#include <limits.h> で定義されている UINT_MAX にすることにした。以前はあまり効果がなかったと思うのだが、データの流れをしっかりした後では少しであるが効果があるようだ。それにともない、探索ループを少しだけだが、変更した。
[1] 変数は int、-1 で初期化
24.89[s]
[2] 変数は int、UINT_MAX で初期化
25.00
[3] 変数は unsigned int、UINT_MAX で初期化
24.98
[4] 変数は unsigned int、UINT_MAX で初期化、ループ内の処理をまとめる
24.19
非負の数で初期化したことにより、ループを1つにまとめることができるので、多少効果が合ったのではないか。
[4] については、スレッド数が1でないときも実験してみた。
1 thread :24.1934 [sec]
2 threads :13.8004 [sec]
4 threads : 8.3606 [sec]
8 threads : 6.9205 [sec]
よく見てみると以前のものと、実はほとんど変化はないようである。いろいろいじっているうちに、変更点が分からなくなってしまっているようにも思える。。参考までに前回の実験結果をのせておく。
[前回]
1 thread :24.3334 [sec]
2 threads :13.7868 [sec]
4 threads : 8.2452 [sec]
8 threads : 6.9109 [sec]
今まで、未探索点に対するラベルとして -1 で初期化していたが、unsigned 同士の演算のときは unsigned の方が良いと思い、#include <limits.h> で定義されている UINT_MAX にすることにした。以前はあまり効果がなかったと思うのだが、データの流れをしっかりした後では少しであるが効果があるようだ。それにともない、探索ループを少しだけだが、変更した。
[1] 変数は int、-1 で初期化
24.89[s]
[2] 変数は int、UINT_MAX で初期化
25.00
[3] 変数は unsigned int、UINT_MAX で初期化
24.98
[4] 変数は unsigned int、UINT_MAX で初期化、ループ内の処理をまとめる
24.19
非負の数で初期化したことにより、ループを1つにまとめることができるので、多少効果が合ったのではないか。
[4] については、スレッド数が1でないときも実験してみた。
1 thread :24.1934 [sec]
2 threads :13.8004 [sec]
4 threads : 8.3606 [sec]
8 threads : 6.9205 [sec]
よく見てみると以前のものと、実はほとんど変化はないようである。いろいろいじっているうちに、変更点が分からなくなってしまっているようにも思える。。参考までに前回の実験結果をのせておく。
[前回]
1 thread :24.3334 [sec]
2 threads :13.7868 [sec]
4 threads : 8.2452 [sec]
8 threads : 6.9109 [sec]
※コメント投稿者のブログIDはブログ作成者のみに通知されます