学位論文要旨



No 111542
著者(漢字) 日高,康雄
著者(英字)
著者(カナ) ヒダカ,ヤスオ
標題(和) 高並列非定型処理における並列実行制御方式
標題(洋)
報告番号 111542
報告番号 甲11542
学位授与日 1995.11.09
学位種別 課程博士
学位種類 博士(工学)
学位記番号 博工第3529号
研究科 工学系研究科
専攻 情報工学専攻
論文審査委員 主査: 東京大学 教授 田中,英彦
 東京大学 教授 井上,博允
 東京大学 教授 武市,正人
 東京大学 教授 渕,一博
 東京大学 助教授 喜連川,優
内容要旨

 今日,計算機の応用分野は拡大の一途を辿っており,科学技術計算などの定型処理だけでなく,整数演算が主体の処理や記号処理などの複雑な非定型処理をも含めた汎用の高速計算機が求められている.また,VLSI技術の著しい発展によって,高並列計算機がハードウェア的に実現可能となり,定型処理の分野では実用化段階を迎えている.一方,負荷分散やスケジューリングなどの並列実行制御方式は,いかなる並列処理においても必要となる普遍的な課題として,並列処理の研究と共に長く精力的に研究されてきたが,従来の方式は非定型な高並列処理には適用が困難で.高並列汎用計算機の実用化を妨げる一因となっていた.

 そこで本研究では,高並列非定型処理を対象とする実用的な並列実行制御方式を,現実の高並列計算機上で明らかにすることを目的とした研究を行なった.そして,研究の遂行に伴う作業や実装中の発見などの副次的な成果を含めて,大別して,1)高並列推論エンジンPIE64の全稼働状態の実現,2)高並列非定型処理における並列実行制御方式,3)レジスタウィンドウ上のマルチスレッド処理方式,の三種類の成果を得た.

高並列推論エンジンPIE64の全稼働状態の実現

 本研究は,高並列推論エンジンPIE64の試作研究プロジェクトの一貫として行なわれた.PIE64(図1)は.大規模知識処理のための高並列記号処理計算機として開発されたが,アーキテクチャ的には一般的な構成をとっており,記号処理をも含めた汎用の細粒度高並列処理に適した並列計算機と見なすことができる.

図1:PIE64の外観.十字型に並べた五つの筐体からなり,中央の筐体に相互結合網(2系統),回りの筐体に推論ユニット(16台×4筐体)が格納されている.

 本研究の遂行上は,システムの全稼働状態を実現するために,大半の時間が費やされた.その作業の多くは実装上の細かい問題であり,本来の研究目的には必ずしも沿ったものではないため,詳細は本論文では割愛する.しかし,実用的な方式という研究目的を達成するには,実用規模の実機上での実験が必要不可欠であり,全稼働状態の実現なくして本研究の成果を得ることは不可能であったと言える.また,PIE64の全稼働状態の実現によって,本研究自体が可能になっただけではなく,コンパイラやさらに先の計算機アーキテクチャなどの様々な研究も,実機での実測データに基づいて進めることが可能となった.すなわち,それらの研究に資するPIE64を全稼働させたこと自体も,本研究の成果の一つであると言える.

高並列非定型処理における並列実行制御方式

 本研究の中核である並列実行制御方式の研究としては,実機が稼働するまでは,定性的な検討とシミュレーションによる評価を中心に,1)静的負荷分割の研究,2)並列処理管理カーネルの研究を行なった.それらの研究で得られた知見を元に,実機が稼働してからは,3)バンバン粒度制御の研究を行なった.

 静的負荷分割の研究 静的負荷分割の研究では,非常に高い表現力を持ちながらも,実行時オーバヘッドが小さく,動的分割や動的割当とも融合が可能な,静的分割の戦略表現方法を考案した.また,仮実行のプロファイルデータを用いて,その分割戦略を自動付加する実験を行ない,従来困難とされていた非定型処理の自動分割の可能性を示した.そして,ワークステーション上のシミュレーションによる評価で,実質的な並列性を落すことなく,メモリアクセスのローカリティが35%前後から70%前後まで向上することを確認した.一方,この自動付加手法では,ヒューリスティクスを使わずに最適化が可能な実験的方法を用いており,その結果を分析することによって,より実用的な最適化方式への指針を示すことができた.

 並列処理管理カーネルの研究 並列処理管理カーネルの研究では,静的な方式を踏まえた上で,プログラムの実行時支援を担うオペレーティングシステム核の基本設計を行ない,実行時の負荷分散やスケジューリングなどに対する要件を整理して,必要な機能の検討を行なった.特に,負荷分散の方式としては,コンパイラによる静的負荷分割,並列処理管理カーネル自身による動的負荷分割,そして相互結合網ハードウェアによる動的負荷割当を組み合わせる方式を考案し,ワークステーション上のシミュレーションによって,類似した効果を持つ静的分割と動的分割を比較し,それらの得失の違いを明らかにした.すなわち,動的分割は,並列性が高い場合には非常に効果的であるが,並列性が低くなると急激に効果がなくなるのに対し,静的分割は,並列性が高い場合の効果は動的分割に及ばないものの,並列性の高低によらない一定レベルの効果を発揮し,並列性が低い場合には動的負荷分割を上回る効果を持つことがわかった.そして,並列性が高い時には動的分割が,並列性が低い時には静的分割が重要であり,両者の利点を組み合わせた複合方式が常に最良であることも明らかになった.

 バンバン粒度制御の研究 バンバン粒度制御の研究は,上記二つのシミュレーションベースの研究で得られた知見を踏まえた上で,再度,定性的な考察を加えて一般化し,全稼働し始めた実機上に実装して評価したものである.すなわち,並列性が十分に高く,システム全体が高負荷状態にある時と,並列性が不足し,低負荷状態にある時とでは,様々な状況が全面的に逆転する.そこで,それらの二つの世界を明確に分離し,それぞれの世界での最適化を意識的に区別して行なった上で,実行時の負荷状態に応じて細粒度と粗粒度の両極のコードを切替える「バンバン粒度制御」を提案した.二つの世界を分離し,両状態を同時に扱う中間粒度のような考え方を捨て去ることによって,複雑なシステムが大変見通しのよいものとなり,並列処理の研究で長く議論されている様々な問題に自ずと答が与えられる.一般には中間粒度が良いと言われるような領域でも,粗粒度の最適化と,粒度のすみやかな切り替え機構によって,効率と稼働率の向上がはかられる.本方式をPIE64上に実装し,評価した結果,1)単体プロセッサによる実行では,細粒度並列処理言語においても,C言語で記述して逐次型計算機で実行した場合に匹敵する性能が得られ,2)並列性が十分に高い場合には,逐次処理と較べても高い台数効果が得られ,3)並列性が低い場合には,細粒度並列処理による限界と同じ速度向上が得られる,という理想的な高並列非定型処理が実現されることを確認した.

レジスタウィンドウ上のマルチスレッド処理

 これは,レジスタウィンドウを用いた高速手続き呼び出しと高速コンテクストスイッチを,既存のレジスタウィンドウアーキテクチャ上で両立させる方式で,汎用高速RISC型マイクロプロセッサであるSPARCを用いたマルチスレッド処理に広く適用可能な,汎用的な方式である.

 この方式は,PIE64の実装中に偶然発見されたもので,本研究の副次的な研究成果の一つであるが,一般社会へのインパクトという観点では,本研究の様々な成果の中で,最も社会的貢献度の高い成果の一つである.すなわち,SPARCを用いた粗粒度並列計算機や逐次計算機は,既に社会に広く普及しているが,本方式は,細粒度高並列処理に限らず,それらの計算機にも広く適用可能な方式である上,これまでの一般的な認識を完全に覆す方式であり,さらに,発見した工夫自体は至極単純明解で,コロンブスの卵のような研究成果でもある.

 本方式は実際にPIE64上で使われているが,その一般性を考慮して,C言語による応用プログラムと,レジスタウィンドウのエミュレータを使い,より一般的な観点から評価した.その結果,十分な数のウィンドウがある場合は,本方式は確かに手続き呼び出しとコンテクストスイッチの高速化に役立つことが確認され,さらに,ワーキングセットモデルを導入することで,利用可能なウィンドウ数に応じてワーキングセットが制御され,本方式は常に優れた性能を示すことが確認された.

 以上のように,本研究では様々な研究成果を挙げたが,それらを関連付けてまとめると,次のようになる.

 静的負荷分割方式の研究では,自由度の高い負荷分割戦略の表現方法を提案し,コンパイラによる自動分割の可能性を示した.並列処理管理カーネルの研究では,この静的な方式を踏まえた上で,実行時の動的な方式を提案し,静的方式と動的方式の得失を明らかにして,両者を融合した複合方式が最善であることを示した.この知見を元にさらに考察を加え,低負荷状態と高負荷状態を明確に分離し,細粒度と粗粒度の二種類のコードを切り替えるバンバン粒度制御方式を提案し,全稼働状態を実現したPIE64の実機上に実装,これを評価して,理想的な高並列非定型処理が達成されることを確認した.また,実装の途中で,レジスタウィンドウ上のマルチスレッド処理方式を発見したため,これを一般化・実装・評価した.

 従来,高並列非定型処理における並列実行制御方式は,プログラマに負担を与えており,真に汎用の高並列計算機の実用化を妨げていたが,本研究の成果によれば,これを完全に自動化することは可能であり,高い並列性を有する時には高い台数効果が,並列性が不足する時には限界までの速度向上が得られ,優れたコストパフォーマンスと飛躍的な性能向上を両立させる理想的な高並列汎用計算機を実現することが可能である.プログラマに残された仕事は,高い並列性を有するアルゴリズムでプログラムを記述することであり,もはや過剰な並列性や通信オーバヘッドなどを気にかけてプログラミングする必要はない.すなわち,本研究によって,高並列汎用計算機の実用化へのブレークスルーが開かれたと言うことができる.

審査要旨

 本論文は、「高並列非定型処理における並列実行制御方式」と題し、8章からなる。並列処理は、今後重要な技術であるが、手続き呼出を主体とする非定型的な問題に対する並列処理は、その動きが動的で複雑であるため、従来十分に検討されていなかった。この種の処理では、実行時の並列度によって動的に制御を変えることが不可欠である。本論文は、この問題に対して実用的な並列実行制御方式を提案し、実用規模の並列試作機の上にそれを実装してその有効性を検討したものである。

 第1章「序論」で社、研究の背景と目的、成果のまとめ、並びに論文の構成について述べている。

 第2章「従来の並列実行制御方式」は、従来の関連研究について述べ、この分野の研究には多くのものがあるが、それらはいずれも、対象とする並列度が低かったり、完全な自動化ではない、処理粒度に応じた最適制御が抜けている等、動的な処理の分割や低負荷時の細粒度実行を考慮したものは存在しないととを指摘している。

 第3章「高並列推論エンジンPIE64とコミッティッドチョイス型言語Fleng」は、本研究のプラットフォームである高並列推論エンジンについて、そのアーキテクチャと基本的な実行モデルについて述べている。PIE64は、64台の推論ユニットと2系統の相互結合網からなるMIMD型の並列計算機であり、並列処理向きのさまざまな特徴を備えたマシンであるが、筆者はこの実装を担当して全稼働させ、その上に種々のソフトウエアを載せて利用可能ならしめている。

 第4章「コミッティドチョイス型言語の動的負荷分割」は、負荷分散の問題を、データや処理を割り当ての単位に分割する負荷分割と、それらを物理的なプロセッサに割り当てる負荷割り当てとに分けた場合の前者を検討したもので、並列性の抽出と通信コストの低減という相反する問題の解決法を与えている。すなわち、プログラムに内在する有効な並列性を十分に抽出した上で、それに反しない範囲で通信コストを低減させるという戦略を取り、また、通信コストの低減には、ローカルメモリ参照率を出来るだけ上げることで対処している。更に、戦略の自動負荷の一手法として、プログラムの仮実行時の情報を用いるプロファイラ方式をも提案している。次にこれらの静的負荷分割方式を定量的に評価し、その有効性を確認している。

 第5章「並列処理管理カーネルのアーキテクチャ」は、PIE64の管理プロセッサに実装した制御プログラムについて述べたもので、管理カーネルが担当する動的負荷分割と、スケジューラが担当する動的負荷割り当てがその中身である。動的負荷分割では、総合結合網の負荷モニタ機能を利用して、実行時にオーバヘッド少なくシステムの負荷を調べ、それに基づいて負荷の分割を行なう。スケジューリングでは、動的な優先度を導入して、ヒープメモリの枯渇回避と並列性の抽出をはかり、実行開始の予測を行なって同期コストを低減させる。これらの方式をシミュレーションによって評価し、動的負荷分割と前章の静的負荷分割を組み合わせることで常に最適な状態を得ることができることを示すとともに、実機によってもそれを確認している。

 第6章「バンバン粒度制御」は、システムの稼働状態に適した最適な粒度でプログラムを走らせる方式について述べたもので、システムの稼働率が低いときは細粒度実行を行ない、稼働率が高くなるとスタックを用いて逐次的にプログラムを走らせオーパヘッドの少ない実行を実現するというものである。これを実機上に実装して評価した結果、逐次処理においてもC言語に遜色ない性能が達成できること、並列性が高い場合は十分な台数効果が達成できることを示している。

 第7章「レジスタウインド上のマルチスレッド処理」は、PIE64の処理系実装時に見い出したレジスタウインドの新しい処理アルゴリズムについて述べたもので、レジスタウインド上に複数のスレッドが存在することを可能ならしめるとともに、マルチスレッド処理性能を向上させる方式である。

 第8章「結論と展望」では、本論文の結論を述べるとともに、今後の課題を整理し、より実用的な静的負荷分割や静的スケジュール方式、バンバン粒度制御方式の最適性の理論検討を挙げている。

 以上、これを要するに本論文は、並列処理に於ける実行制御問題を対象に、従来解決されて来なかった、プログラムの動きが動的で複雑な処理に対して、常に適切にシステムを制御して実行性能を最適化する手法を提案し、並列計算機PIE64上に実装してその効果を示したもので、情報工学上貢献する所少なくない。

 よって、著者社東京大学大学院工学系研究科情報工学専攻における博士の学位論文審査に合格したものと認める。

UTokyo Repositoryリンク