研究概要 |
本年度は,GPGPUなどを使用したヘテロジニアスマルチコア環境における並列計算のStandard MLへの導入を優先し,その実装を行った.実装は,インテル社IA-32アーキテクチャにNVidia社のGeForceビデオカードを搭載したPCもしくはPCサーバ上にて行った.実装の基盤としては,東北大学電気通信研究所大堀研究室において実装されているStandard ML処理系の,SML#処理系(http://www.pllab.riec.tohoku.ac.jp/smlsharp/ja/) を使用した. まず,Standard ML言語からのGPGPU上での並列計算呼び出しの実現として,前年度の検討結果に基づき,Standard ML言語から,GPGPU上に展開された並列計算用のプログラムを呼び出し,その結果を後続のStandard MLの計算で利用できるように拡張とライブラリの実装を行った.ライブラリは,NVidia社のCUDA環境を呼び出す形で実装している.また,拡張については,CUDA環境特有の並列演算の並列度や,デバイス上での分割などの実行時パラメータを設定できるような拡張を行っている. 当初目標としていた,再帰的なデータ構造を用いたヘテロジニアスマルチコア環境における並列計算の実現については,本年度は,言語への組み込みには到達せず,C言語レベルで作成した再帰的データ構造(リスト)を,ホスト側・デバイス側間で相互にやり取りするための検証を行った.この検証では,ポインタの互換性のないデバイス間で,ポインタを含むデータ構造であるリストについて,適切に移動を行うための手法について,検討した.この検討結果に基づき,当初予定していた,実際にStandardML言語に組み込む点については,最終年度で行う予定である.
|