ヒト骨格モデルの並列計算時間を40%以上高速化
山根准教授らが、スケジューリングの自動化で達成

 知能機械情報学専攻の山根克 准教授らは、並列動力学計算アルゴリズムを使って、ヒト骨格モデルの計算を最短にできる自動スケジューリング法を開発した。CPUを複数個使用することで、骨格モデルの計算時間を40%以上短縮できる好結果を得ている。この成果を6月27日から米国アトランタで開かれる「ROBOTICS:SCIENCE AND SYSTEMS」で発表する。ロボティクス研究から生まれたこの自動スケジューリング法は、新しいゲーム開発やCG、CADなどに生かせるうえ、タンパク質をはじめとする複雑な分子の動的な挙動をシミュレートする手段にも使うことが可能で、応用の波及効果が高い。

 ヒトの全身骨格は約200あり、手足の指を除いても相対運動が可能な関節は50以上に上る。現在、研究途上にあるヒューマノイドロボットの場合は20関節くらいを使っているが、ヒトの50の関節がそれぞれ縦、横、回転の3自由度を持つと、全体で自由度は150に達する。これらモデルの動作をリアルタイムで高速シミュレーションするには、並列計算によって行う必要があるが、この計算時間を最小にするように、計算負荷を複数のCPUやコアに分散するスケジューリングがカギを握る。このスケジューリングは、CPUの数、リンク構造・自由度などに依存するために自動化がむずかしく、これまでは、モデルによってスケジュールを組み立てる必要があった。

 山根 准教授は、スケジューリング問題を経路探索問題とみなすことによって計算時間を最短にする負荷分散法を選べるアルゴリズムを構築した。具体的には、最小コストでスタート地点からゴール地点に至る経路を高速に探索する手法の1つであるA*(エースター)法を応用し、総計算時間をコストとする探索を行うことでスケジューリングの自動化を試みた。こうして決めたスケジューリングのもとで、サーバー2台を高速ネットワークに接続したシステムを用いて、2種類の骨格モデルで並列計算を行った。骨格モデルとしては、52自由度、161自由度の2種類を使用し、1CPU、2CPU、4CPUで並列計算を実施した。52自由度の場合、1CPUでは0.301msかかったのに対し、2CPUでは0.186ms、4CPUでは0.177msと高速化できた。161自由度の例でも、1CPUの0.773msに対し、2CPUでは0.443ms、4CPUでは0.356msと高速化を達成した(いずれもXeon 3.8GHzプロセッサーを使用)。

 この結果から、この自動スケジューリング法は、2CPUで最大40%以上、4CPUで最大54%以上の並列計算時間の短縮を実現し、任意のモデル機構、任意のCPUの数に対して並列計算が可能なシミュレーターを実現するという研究目的を達成する見通しを得た。スケジューリングの使いやすさが大幅に向上することから、「並列計算の高速化は、マルチコアのCPUで動作するゲームをはじめ、CGなどに使う斬新なキャラクターや背景づくりに生きてくる」と山根 准教授は話している。この研究は、文部科学省の科学技術振興調整費、NEDOの産業技術研究助成事業の支援を受けている。

並列計算が可能なスケジューリングの例 161自由度骨格モデルのシミュレーションの例
並列計算が可能なスケジューリングの例
(リンクがバラバラの状態から、関節を追加しながら組み立てて、関節に加わる力と加速度を計算する=左側の組み立て1→2→3。
右はその逆の順序で、リンクを分解しながら各関節に加わる力と加速度を計算する=分解4→5→6)
161自由度骨格モデルのシミュレーションの例
(両手で鉄棒につかまった状態のシミュレーション。このように、閉ループを持つ構造でもシミュレーションが可能)
ISTyくん