研究課題/領域番号 |
15K00068
|
研究機関 | 宇都宮大学 |
研究代表者 |
大津 金光 宇都宮大学, 工学(系)研究科(研究院), 准教授 (00292574)
|
研究期間 (年度) |
2015-04-01 – 2018-03-31
|
キーワード | 並列処理 / モバイルコンピュータ / 自動最適化 / 自動並列化 / 自動負荷分散 |
研究実績の概要 |
本年度は研究計画に従い,以下の3課題の解決を図りながら,利用者がどこにいても利用可能な即時的で利便性の高い並列処理環境を実現する「機動的並列処理方式」の研究開発を行った. 課題1:ヘテロジニアスアーキテクチャ向けの高性能バイナリ変換技術の開発を行った.一般的に処理性能や容量に制約のある組込みシステム向けのプロセッサを最大限に活用するために機械命令コード(バイナリコード)レベルでプログラムを最適化をする必要があるため,今年度は,近年の最適化コンパイラの成果が取り込まれたオープンソースソフトウェアである LLVMコンパイラの最適化処理系部分を,動的バイナリ変換フレームワークであるValgrindのバイナリ変換処理系に組み込む方法を検討した. 課題2:ノード数の動的な変動に対応した最適な負荷分散技術の開発を行った.本研究で開発するシステムでは並列処理に参加しているノードが途中で脱退する可能性があり,そのような状況でも並列処理を継続できる必要がある.その際,脱退したノードが担っていた複数の並列処理プロセスを残存するノードで肩代りすることになるが,このとき特定のノードに負荷が偏らないようにプロセス単位で負荷の分散化を実現する.今年度はDMTCPに対してこの機能を実装し,本負荷分散機能により性能低下の軽減が可能であることを明らかにした. 課題3:高速低遅延なチェックポインティング技術の開発を行った.本研究では,ノード間ネットワークは性能的に制約されていると想定している.ノード間でのプロセスの移動はチェックポイントデータの移送により実現するが,この移送の処理をできるだけ短時間に行うことが必要である.今年度は,本研究で使用するチェックポインティングソフトウェアである DMTCPにて差分チェックポイント機能とチェックポイントデータの圧縮機能について調査を行った.
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
3: やや遅れている
理由
本年度の当初計画と研究実績を,3課題についてそれぞれ比較する。 課題1については,当初計画ではヘテロジニアスアーキテクチャ向けにプログラムコードの高性能化を実現するバイナリ変換技術を開発するために,任意の命令セットの組み合わせで互いにコード変換を行える機能の実現と,ターゲット向けに生成されるバイナリコードに対する最適化機能を能力向上を図る予定であった.これに対して,本年度はオープンソースの最適化コンパイラであるLLVMコンパイラのバックエンド処理系の活用によりプログラムコードの並列化および最適化とともに任意の命令セットコードの生成の実現について検討した.また,そのためのValgrindの内部中間表現からLLVMの中間表現への変換処理の実装に着手した. 課題2については,当初計画では動的なノード数変更に対応した最適な負荷分散技術を開発するために,並列プロセス群のプロセス単位でのノード間委譲と,それを基盤としての最適なプロセス配置アルゴリズムの開発を予定であった.これに対して,本年度は並列プロセス群のプロセス単位でのノード間委譲機能の実現を達成した.また,最適なプロセス配置アルゴリズムの実装に着手した. 課題3については,当初計画では並列実行途中のチェックポイントデータの取得の高速低遅延化の技術を開発するために,過去のチェックポインティングデータとの差分のみを取得する方法と,チェックポイントデータを圧縮する方法の2つの方面から検討を行う予定であった.これに対して,本年度は DMTCPが備える差分チェックポイント機能とチェックポイントデータの圧縮機能の2つの機能の性能を解析し,さらなる能力向上が必要であることが判明した. 以上述べた通り,当初計画と比較すると研究全体の進捗はやや遅れていると判断する.
|
今後の研究の推進方策 |
本年度(平成27年度)に得られた成果を基にして,引き続き以下の3課題解決のための研究を行なうとともに,それらを統合して「機動的並列処理方式」を実現するためのソフトウェアシステムの研究開発を行う. 課題1:本年度着手したValgrindの内部中間表現を LLVMの中間表現に変換する処理の実装を進め,Valgrindにてバイナリコードから変換生成した中間表現を経由して,LLVMによってプログラムの並列化・最適化を行うとともに,任意の命令セットのバイナリコードの生成するまでの工程を実現する.また,NPB(NAS Parallel Benchmarks)などを使用して動作検証を行う. 課題2:本年度開発を行った,並列プロセス群を任意のノードに対してプロセス単位で委譲する機能を基盤として,各ノードの処理性能および容量に応じて最適なプロセス配置を実現する機能の実装を行う.また,NPBなどを使用して並列実行途中でノード数を変更し,残存ノードの状況に応じてプロセス配置が行われることを確認する. 課題3:本年度の調査結果に基づいて,チェックポインティングソフトウェアであるDMTPが備えている差分チェックポインティングおよびチェックポイントデータの圧縮機能をベースに,プロセス委譲に必要なネットワーク経由でのチェックポイントデータの転送サイズの削減することで転送にかかる時間の短縮を図る.
|