2019 Fiscal Year Research-status Report
マルチコア並列計算に対応した関数型言語処理系の実現
Project/Area Number |
19K11893
|
Research Institution | Tohoku University |
Principal Investigator |
上野 雄大 東北大学, 電気通信研究所, 准教授 (60551554)
|
Project Period (FY) |
2019-04-01 – 2023-03-31
|
Keywords | SML# / 並列計算 / コンパイラ / 関数型言語 / ガベージコレクション |
Outline of Annual Research Achievements |
本研究の一般的な目的は,C言語やFORTRANに匹敵する並列計算性能を安定して発揮できる関数型言語処理系を実現することである.この実現に向けて,本研究では,関数型言語から暗黙的なメモリ操作や大域的同期を含まないコードを生成するコンパイル方式の開発,および関数型言語の高いメモリ要求に耐える性能を発揮する並行・並列メモリ管理方式の構築を目指すことを計画している.本年度は,並行・並列メモリ管理方式の要となるガベージコレクション(GC)アルゴリズムの開発を行い,以下の成果を得た. (1) 世界を止めない並行・並列GCアルゴリズムを開発した.このアルゴリズムでは,GCの進行は非同期的なハンドシェークによって管理され,GCのためにワーカースレッドが待ち合わせることがない.GCのために必要なタスクはハンドシェークを通じてミューテータスレッドの集合に分散され並列に実行される.従ってGCは投入されたコア数と同じ並列度を持つ.さらに本研究では,このアルゴリズムの中核部分の形式モデルを定義し,アルゴリズムの正しさを証明した. (2) ユーザー/ワーカースレッドモデルで動作する細粒度スレッドライブラリと互換性のあるGC方式を実現した.この方式では,細粒度スレッドライブラリとGCモジュールを密結合することなく,互いに独立に動作しながら,GCで管理されるヒープをユーザースレッドから利用することができる.また,GCモジュールと何ら通信を行うことなく,ユーザースレッドはワーカースレッド間を移動することができる. (3) 以上2点を研究代表者らが開発している関数型言語SML#に実装し,他の言語と並列計算性能を比較することで,GCアルゴリズムが与える性能を評価した.その結果,本研究で開発したGCアルゴリズムを装備したSML#は,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
当初の目標であった並行・並列メモリ管理方式の中核となるガベージコレクション(GC)アルゴリズムを構築でき,SML#コンパイラ上に実装することができた.出版論文としての成果はいまだ無いが,新たなGCアルゴリズムはすでにソフトウェアとして実現されており,近いうちに論文として出版されると期待される.以上から,概ね順調に推移していると判断する.
|
Strategy for Future Research Activity |
以下の点に重点を置き研究を進める. (1) 並行・並列メモリ管理方式のさらなる改良や性能評価を行い,トップカンファレンス等での発表を目指すとともに,その成果を実装したSML#コンパイラのリリースを目指す. (2) 暗黙的なメモリ操作や大域的同期を含まないコードを生成するコンパイル方式を開発する.至近の目標は,自然なデータ表現と分割コンパイルを採用する関数型言語における多相関数のレジスタマシンでの実現方式を確立し,関数呼び出し時に発生する暗黙のメモリ確保を除去することである.その他,暗黙のメモリ操作をSML#コンパイラ全体から洗い出し,それらを除去するための方法を検討する. (3) 以上と並行して,プログラム最適化技術や言語設計の研究を継続し,マルチコアCPUの性能を引き出すチューニングが可能なSML#コンパイラの実現を目指す.
|
Research Products
(1 results)