GraalVM Rランタイム

GraalVMでは、Rプログラムを直接またはREPLモードで実行するためのGNU互換Rランタイムが提供されます。これは、比類のないパフォーマンスでRコードを実行でき、シームレスにGraalVMエコシステムと統合されます。GraalVMのRランタイム開発の背後にあるプロジェクト名は、FastRです。

GraalVM Rランタイムは、試験段階のGraalVMコンポーネントです。

Rのインストール

R言語のランタイムはデフォルトでは提供されず、GraalVMアップデータ (gu)ツールを使用してGraalVMに追加できます:

gu install r

このステップの後、RおよびRscriptランチャがGRAALVM_HOME/binディレクトリで使用可能になります。

R言語のホーム・ディレクトリ(以降、$R_HOMEと呼びます)は、次の場所にあります:

前提条件

GraalVMのRランタイムには、OpenMPランタイム・ライブラリが必要です。次のコマンドによってこの依存性がインストールされます:

バージョン20.1.0以降、Linux上のGraalVMのRランタイムではGFortranバージョン3のランタイム・ライブラリがサポートされ、バンドルされています。macOSでは、GFortranバージョン8.3.0のランタイム・ライブラリがバンドルされ、サポートされています。これらのランタイム・ライブラリをインストールする必要はありません。ただし、ランタイム・ライブラリは、そのライブラリと同じバージョン以上のGFortranコンパイラとのみ互換性があることに注意してください。

Linuxシステムでは、$R_HOME/bin/configure_fastrを使用して、必要なライブラリがインストールされていることを確認でき、インストールされていない場合は、それらのインストール方法が示されます。

さらに、C/C++またはFortranコードを含むRパッケージをインストールするには、それらの言語のコンパイラがターゲット・システムに存在する必要があります。次のパッケージによって、最も一般的なRパッケージの依存性が満たされます:

ノート: gfortran実行可能ファイルがシステム・パスにない場合は、$R_HOME/etc/MakeconfFC変数でそのフルパスを構成する必要があります。

パッケージの検索パス

Rライブラリのデフォルトの場所は、GraalVMインストール・ディレクトリ内です。GraalVMインストール・ディレクトリへの書込みアクセス権を持たないユーザーに対して追加パッケージのインストールを許可するには、$GRAALVM_HOME/etc/RenvironファイルのR_LIBS_USER変数を編集します。

Rの実行

RおよびRscriptコマンドを使用して、Rコードを直接またはREPLモードで実行します:

R [polyglot options] [R options] [filename]
Rscript [polyglot options] [R options] [filename]

GraalVM Rランタイムでは、他のGraalVM言語のランタイムと同じポリグロット・オプションおよびGNU Rと同じRオプション(bin/R --vanillaなど)が使用されます。サポートされているオプションのリストを出力するには、--helpを使用します。最も重要なオプションは次のとおりです:

ノート: 他のGraalVM言語のランタイムとは異なり、Rにはそのランタイムのネイティブ・イメージバージョンがまだ付属していません。したがって、デフォルトである--nativeオプションにより、引き続きJVM上でRscriptが起動しますが、将来の互換性のために、この場合はJavaとの相互運用性を使用できなくなります。

オプションで、ネイティブ・イメージをビルドできます:

gu rebuild-images R

Rのネイティブ・ランチャは、関心があるユーザーが使用したり、実験のために使用することのみを目的としています。既知の問題や制限事項があります。ネイティブ・ランチャがビルドされたら、--jvmフラグを使用してJVMモードでRを再度実行できます。

GraalVM統合

R言語とGraalVMエコシステムとの統合には次のものが含まれます:

Rコードのデバッグを開始するには、--inspectオプションを指定してランチャを起動します:

Rscript --inspect myScript.R

ノート: debug(myFunction)などを使用するGNU互換のデバッグもサポートされています。