研究課題/領域番号 |
19K11904
|
研究機関 | 東京大学 |
研究代表者 |
鵜川 始陽 東京大学, 大学院情報理工学系研究科, 准教授 (50423017)
|
研究期間 (年度) |
2019-04-01 – 2023-03-31
|
キーワード | 不揮発性メモリ / メモリ管理 / データベース / 並行処理 / ガーベージコレクション / ランタイムシステム / プログラミング言語 |
研究実績の概要 |
本研究では,不揮発性メモリをプログラミング言語から利用するための仕組みの構築を目指している.これにより,データをディスク上のデータベースに保存する必要がなく,メモリに留めておけるため,高速にデータにアクセスできるようになる.本研究では特に,Javaのようにプログラマがメモリを意識する必要がないマネージド言語に適した仕組みを目指している. (実績1) Javaにおいて全てのオブジェクトを不揮発性メモリに配置し永続化した場合の性能と,そうした場合に通常のメモリに配置する場合に比べ性能が低下する主な原因を解明した.不揮発性メモリに配置したオブジェクトに書き込んでも,キャッシュラインフラッシュの操作をしなければ,変更は不揮発性メモリに格納されない.キャッシュラインフラッシュは時間がかかることは知られていたが,本研究では,それによってアプリケーションの実行がどの程度遅くなるのかを定量的に示した.また,性能低下の主な要因を突き止めた. (実績2) 到達性に基づく選択的永続化を実現する新しいアルゴリズムを構築し,製品レベルのJava処理系に試験実装した.重要なデータだけを選択的に不揮発性メモリに配置し永続化することによって,全てのオブジェクトを永続化するより高速な実行が可能になる.到達性に基づく選択的永続化はプログラマが簡単に永続化対象を指定できるという利点があるが,既存のアルゴリズムには永続化していないオブジェクトの読み書きにもオーバヘッドがかかるという欠点があった.本研究では,最も頻繁に行われる読み出し操作に着目し,読み出しにオーバヘッドがかからないアルゴリズムを構築した.それをオープンソースのJava処理系の実装であるOpenJDKに試験実装し評価した.
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
本研究のように,プログラミング言語処理系の実装技術の研究では,実用的な処理系に実装して性能を評価をすることが必要不可欠である.しかし,実用的な処理系は一般に巨大かつ複雑で,その上に新しいアイデアを実装するのは簡単ではない.本年度は,実用されているJava処理系であるOpenJDKに不揮発性メモリを使う基本的な機能を実装し,そのうえで新しく構築したアルゴリズムの試験実装も行った.この実装は,今後の研究基盤として利用する. 不揮発性メモリを使う基本的な機能を利用した(実績1)の成果は論文誌に掲載が決定しておりされ,新しいアルゴリズムも国際会議に投稿中である.
|
今後の研究の推進方策 |
今年度構築した新しいアルゴリズムを軸に,性能の向上と,実用化に必要な機能の研究開発を行う.特に,永続化したデータを使ってシステムクラッシュによる再起動後にデータを再構築する仕組みや,不揮発性メモリの領域管理とガーベージコレクションとの連携を中心に研究する.また,アルゴリズムの検証についても,ソフトウェア検証の専門家と連携する.
|
次年度使用額が生じた理由 |
コロナウィルスの影響の長期化と,それに伴う国際会議のオンライン化により,旅費の未使用額が増えた.一方で,研究が順調に進展し,参画する研究協力者も増えたことから,初年度に購入した不揮発性メモリ搭載ワークステーションの1台では実験に支障をきたす恐れが出てきた.旅費の未使用額を充てて,実験環境の拡充を計画している.
|