2015 Fiscal Year Research-status Report
ハードウェア非依存な教育向け並列プログラム言語とその処理系の研究
Project/Area Number |
15K21511
|
Research Institution | Osaka Institute of Technology |
Principal Investigator |
水谷 泰治 大阪工業大学, 情報科学部, 講師 (10411414)
|
Project Period (FY) |
2015-04-01 – 2018-03-31
|
Keywords | 並列処理 / 教育工学 / プログラミング |
Outline of Annual Research Achievements |
本研究の目的は,並列プログラムの書き方を抽象化し,並列プログラミングの本質を学ぶのに適した教育向け並列プログラミング言語,およびその処理系を開発することである. 平成27年度は,教育向け並列プログラミング言語であるT言語を提案した.まず,近年普及している,PCクラスタ,マルチコアCPU,GPUの3種類の装置において複数種の並列プログラムを作成し,各装置上の並列プログラミングにおける共通的な操作を抽出した.抽出した操作は,1)関数の並列呼び出し,2)並列に動作するプロセス・スレッドの識別子の取得,3)並列に動作しているプロセス・スレッドの総数,4)同期処理である.これらはいずれの装置においても用いられる操作である.これらに加え,分散メモリ環境を対象とした通信処理,共有メモリ環境を対象とした排他制御処理も抽出した.そして,各装置上の並列プログラムに必要な初期化処理等は排除し,抽出した操作のみを使って並列プログラムを記述できるようにした.これにより,T言語では,各装置における独特なコーディングを行うことなく,並列処理の実現方法に集中してプログラミングを行うことが可能となる. さらに,簡易的ではあるが,T言語で記述したプログラムをエミュレート実行する処理系も開発した.この処理系では,T言語プログラムをPCクラスタ上のMPIプログラム,または,マルチコアCPU上のPthreadプログラムに変換することで並列実行を実現した.これらの成果を,情報処理学会・全国大会において発表した. 一方,並列プログラミングの初学者には実行状況を可視化することが有効であると考えられるため,上記の取り組みと並行してプログラムの実行状況を可視化するツールも開発した.現状では遂次のCプログラムを対象としたものではあるが,この成果は電子情報通信学会・総合大会において発表した.
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
平成27年度の計画は,PCクラスタ,マルチコアCPU,GPUといった並列処理装置上で並列プログラムを実装し,並列プログラミングの共通性の抽出することである. これらの装置上で共通する操作として,関数単位の並列呼び出し,各関数呼び出しの識別番号の取得といった処理を見い出した.また,分散メモリ型と共有メモリ型の並列プログラミングについては,プロセス・スレッド間の送受信や排他制御といった処理を共通的な操作とした.これにより,当初計画していた共通性の抽出は実現できたと言える.また,ガウスの消去法,N体問題,ヒストグラムといった処理に対して,抽出した共通操作で並列プログラムを記述できること確認した.以上より,計画は順調に進展していると言える.
|
Strategy for Future Research Activity |
当初の計画通り,提案した教育向け並列プログラミング言語で記述したプログラムを単一のPC上で実行する方式について検討する. 並列プログラミングの学習において,学習者の学習意欲を高めるためには,並列化による速度向上を体感することは重要であると考えられる.一方,高い速度向上を得るためには,並列処理を行う装置を十分に用意した上で実行環境を整える必要がある.この作業は並列プログラミングの初学者にとって難しい.そのため,単一のPC上での実行において,上述の速度向上を体感できる仕組みを構築する. 現実的には,単一のPCに搭載されたマルチCPUのコア数は2~8程度であるため,単純な実現では高々8倍程度の速度向上しか体感できない.そこで,提案した教育用並列プログラミング言語で記述したプログラムを実行する際,低並列度で実行した場合にはダミーの待機時間を挿入し,高並列度で実行した場合にはその待機時間を取り除くといった方法で,擬似的に速度向上率を高める手法について検討・評価する.
|
Causes of Carryover |
購入した物品の販売価格の変動により,交付された予算よりも少ない額で物品を購入することができたため.
|
Expenditure Plan for Carryover Budget |
次年度に購入する予定の開発用PCの拡張(搭載メモリ量の増加等)に使用する.
|