前回の記事で少し見積もりに触れたので。
現在は1000クエリを4スレッドでスレッド並列した場合、
1スレッド目 : 1~250
2スレッド目 : 251~500
3スレッド目 : 501~750
4スレッド目 : 751~1000
という風に、あらかじめ割り振ってしまっている。
1対1最短路では実行時間の見積もりが立てづらく、1つ1つのクエリが全米でも数百ミリ秒~5秒と実行時間は短めであるために、クエリを割り振る部分でのオーバーヘッドが効いてきてしまうのではないかという懸念からである。
だからと言っても、やはりスレッドごとがうまく平均化されるというのは考えにくいので、いくつかの塊に分け、ブロック毎に動的に割り振るという方法がいいのではないかと思う。
現在は1000クエリを4スレッドでスレッド並列した場合、
1スレッド目 : 1~250
2スレッド目 : 251~500
3スレッド目 : 501~750
4スレッド目 : 751~1000
という風に、あらかじめ割り振ってしまっている。
1対1最短路では実行時間の見積もりが立てづらく、1つ1つのクエリが全米でも数百ミリ秒~5秒と実行時間は短めであるために、クエリを割り振る部分でのオーバーヘッドが効いてきてしまうのではないかという懸念からである。
だからと言っても、やはりスレッドごとがうまく平均化されるというのは考えにくいので、いくつかの塊に分け、ブロック毎に動的に割り振るという方法がいいのではないかと思う。