明日朝みて問題なかったらこれでいく。
いかに計算時間が最小になるように処理を分散してやるか。
ノード選択アルゴリズムを2種類に分ける。
質優先計算時間最適化
前提:タスクの粒度が荒い。発信元ノードはマスターノードまたはそのバックアップのみで少数。
用途:バケットレンダリングタスクetc.
各ノードの現在持つ粒度の荒いタスクをすべて終わらせるのにかかる時間を把握ー>最適なノードに打診(この際CASっぽくノードの完了時間も添付→失敗したらやりなおし)
速度優先計算時間最適化
前提:タスクの粒度が細かく、計算時間短い。はずれても致命的にはならない。多くのノードが発信元になりうる。
用途:ピクセルレンダリングタスク、レイトレースタスク、テクスチャ参照タスクetc.
タスク毎にざっとCDF構築→当たったノードに要求
Demand-basedでいいじゃんとか思われるかもしれませんが、現在考えているのはノード性能が同一でない場合(しかも結構落差が激しい場合)での分散アルゴリズムです。ありあわせマシンでRender Farmできたらいいなーという。