新たな歴史の1ページ~Oracle Code One 2018現地レポート

【Oracle Code Oneレポート】Oracleが開発中の仮想マシン「GraalVM」で何ができるか

この記事を読むのに必要な時間:およそ 3 分

GraalVMで高速化を図るTwitter社

Twitter社はいちはやくGraalVMを導入した会社の1つです。同社によるGraal VMの導入事例についてはTwitter VMチームのChris Thalinger氏が多くの発表を行なっており,そのプレゼンテーションの様子がYouTubeなどに投稿されています(たとえば2018年3月のVOXXEDDAYSでの講演はこちらで見られます)⁠

Oracle Code Oneでは,Thalinger氏がGraalVMを使った新しい試みについて発表しました。これは,GraalVMに対してベイズ的手法を用いて最適な実行パラメータを探し,自動でチューニングするというものです。ベイズ的手法を用いた分析には,Whetlab(機械学習に関する技術のスタートアップで,2015年に同社が買収した)が展開するBOaaS(Bayesian Optimization-as-a-Service)を利用したとのことです。

テスト対象としたパラメータは,インライン展開する閾値を決定する以下の3つです。

  • TrivialInliningSize
  • MaximumInliningSize
  • SmallCompiledLowLevelGrapthSize

この3つのパラメータを指定した範囲で変動させながら,BOaaSを利用して最適な組み合せを見つけ,自動的に調整します。テストの結果,CPU使用時間やレイテンシーについて,既存のパラメータを利用した場合に比べてさらなる改善が見られたとのことです。

自動チューニングによるCPU使用量の改善例

自動チューニングによるCPU使用量の改善例

自動チューニングによるレイテンシの改善例

自動チューニングによるレイテンシの改善例

GraalVMとTruffleをを使ったGoldman Sachsの挑戦

Goldman Sachs社(以下,GS)では,自社開発の「Slang」というプログラミング言語を使用しているそうです。この言語は25年前から開発されており,同社にはSlangベースの莫大な量のコードが現在も稼働しています。しかし,25年という数字でも容易に想像ができるように,レガシーな資産によくある多くの問題を抱えているそうです。特に重大な問題としては次のようなものが挙げられています。

  • 時間の経過とともに進化しており,明確な言語仕様がない
  • C/C++の複雑なコードで作られているため,最適化が難しい
  • 過去の最適化によって,SlangやLLVMでコンパイル済みのバイナリコードが存在する
  • 1億5,000万行のSlangコードがクリティカルなシステムで現在も稼働している

GSでは,TruffleとGraalVM,そしてSulongを利用して,これらの問題の解消を試みているとのことです。Sulongは,GraalVMに組み込まれているハイパフォーマンスなLLVMのビットコードインタプリタです。GSの挑戦は,既存のSlangインタプリタの実装を活かしつつ,SlangのコードをハイパフォーマンスなGraalVM上で実行できるようにするというものです。具体的には,既存のインタプリターと新たに実装したTruffleベースのインタプリタを,Sulongを用いて相互に連携させます。これによって,既存のSlangコードがTruffle側の変数にアクセスしたり,Truflle側からSlangのコードを呼び出したりできるようになります。

既存インタプリタから新インタプリタへの変数アクセス

既存インタプリタから新インタプリタへの変数アクセス

新インタプリタから既存インタプリタへのコード呼び出し

新インタプリタから既存インタプリタへのコード呼び出し

この方針でPoCを実施した結果として,GraalVMのツールチェーンを活用できる点や,既存インタプリタとの相互運用に関しては満足できる結果が得られたとのことです。一方で,使用するC++ライブラリの違い(Sulongがlibc++に依存するのに対して,GCではlibstdc++を使っている)や,ネイティブ環境とVM環境の同時利用などに関しては,まだ改善の余地があると考えているそうです。

GraalVM導入のPoC結果

GraalVM導入のPoC結果

GSのチャレンジはまだスタート地点とのことですが,GraalVMの大規模な活用事例として極めて興味深いものです。

著者プロフィール

杉山貴章(すぎやまたかあき)

ONGS Inc.所属のプログラマ兼テクニカルライター。雑誌,書籍,Webメディアで多数の著作をもつ。

著書