並列化が難しい計算を並列化する
情報・通信
----------------------------
2024-18
平石 拓 専任講師
並列化が難しい計算を並列化する
工学部情報工学科
■研究業績等
【論文】
・学術論文「AnExtensionallyEquivalence-ensuredLanguageforTaskParallelProcessingwithBacktracking-basedLoadBalancing」JournalofInformationProcessingInformationProcessingSocietyofJapan29(Vol.29):434-448(共著):2021/07
・学術論文「ParallelizationofMatrixPartitioninginConstructionofHierarchicalMatricesusingTaskParallelLanguages」JournalofInformationProcessingInformationProcessingSocietyofJapanVol.27:840-851(共著):2019/12
・学術論文「ParallelizationofExtractingConnectedSubgraphswithCommonItemsetsinDistributedMemoryEnvironments」JournalofInformationProcessingVol.25:256-267(共著):2017/01
・学術論文「Backtracking-basedLoadBalancing」Proceedingsofthe14thACMSIGPLANSymposiumonPrinciplesandPracticeofParallelProgramming(PPoPP2009)pp.55-64(共著):2009/02
近年のスパコン等の超高速な計算システムは、一基のCPUの高性能化ではなく、数十以上の計算コアを持つ数千~十万以上の計算機を高速通信網で接続することで実現されています。そのため、パソコン向けに書いたプログラムはスパコンでは速く動作せず、計算の性質に応じて非常に複雑なプログラムを書かなければなりません。
特に、ゲーム木探索やソーシャルネットワーク・蛋白質構造の解析といった「不規則な」構造を持つ計算の並列化は、困難な課題のひとつです。この種の並列化の難しいところとして、負荷が均一になるように仕事を複数の計算コアに分担させるのがほぼ不可能であるという点があります。計算の実行中に仕事の配分を変更する「動的負荷分散」という技術が用いるとこの問題は解決できますが、この仕組みを用いたプログラムをスパコン向けに適切に書くのは複雑で、専門知識を要します。
本研究では、このようなプログラムを誰でも簡単に書けるようにする並列プログラミング言語を開発しています。
本研究では、Tascellという動的負荷分散機能を備えた並列プログラミング言語を開発しています。この言語では、計算コアは普段は並列計算ではないかのように計算を実行し、ほかの計算コアから仕事を要求されたら、もともと並列計算を行っていたかのように並列化のための処理を行うという独自に開発した手法「一時的バックトラック」を採用しています。これにより、特にスパコンのような複数の計算ノードを接続した環境において、他の同種の言語に比べ優れた並列性能を達成しています。これまでの応用として、蛋白質ネットワークから特定の条件をみたす部分ネットワークを抽出する問題や、物理シミュレーションに現れる数千万~一億
の粒子をその距離に応じてグルーピングすることで粒子の相互関係情報を近似的に圧縮する「階層型行列」を扱う計算の並列化で、この言語は効果を発揮しています。
今後は、言語の実装技術をより洗練させるとともに、実際の応用例についてももっと増やしていきたいと考えています。
並列プログラミング言語、動的負荷分散、探索問題、数値計算
コメント