-1

バックグラウンドで R 関数を別のスレッドとして実行する方法を探していました。R は C で書かれているので、一部のパッケージが pthread を使用したスレッド化をサポートすることを期待していました。これまでのところ、良いものは何も見つかりませんでした。テストしたパッケージのいくつかは、壊れているか、他の概念を実装していました。したがって、私の要件は、R スクリプトを R コンソール内の別の pthread として実行するのと同じくらい簡単です。関数またはスクリプトを別のスレッドとして実行するにはどうすればよいですか。

PS - フォークのような機能を探しているわけではありません。

ありがとう

4

1 に答える 1

3

R拡張マニュアルで:

POSIX スレッドの直接サポートはありません。


または、複数の R プロセスを並行して使用することもできます。Linux では、ターミナルから R スクリプトを実行し、次のように追加することで、単純にプロセスを fork できます&

Rscript spam.R &

R内からこれを行うと主張する場合:

system("Rscript spam.R", wait = FALSE)

または、パッケージを見て、parallelR 操作を並行して実行することもできます。


あなたのコメントを考えると、HighPerformance タスク ビューを見ることができると思います。そこから引用:

Kane と Emerson による bigmemory パッケージは、行列などの大きなオブジェクトを (ファイルを介してだけでなく) メモリに格納することを許可し、外部ポインタ オブジェクトを使用してそれらを参照します。これにより、R の内部メモリ制限にぶつかることなく、R からの透過的なアクセスが可能になります。同じコンピューター上の複数の R プロセスで、ビッグ メモリ オブジェクトを共有することもできます。

複数の R インスタンスがメモリに保存されている同じデータにアクセスできるようにすることで、bigmemoryパッケージが興味深いものになる可能性があることを示しています。フォークを使用して複数の R インスタンスを作成するよりも。

于 2013-01-08T14:00:02.440 に答える