クラウドで実行されているRセッションを操作する最良の方法


10

私は、生体導体AMIの修正バージョンを使用して、Amazon EC2でRを実行しています。現在、私はputtyを使用してサーバーにSSHで接続し、コマンドラインからRを開始してから、スクリプトをnotepad ++からputtyセッションにコピーして貼り付けています。

事は、私はカットアンドペーストが嫌いです。それは石器時代を感じており、コードをめちゃくちゃにする奇妙なバッファリングの問題をときどき得ます。RStudioマルチコアをサポートしていないため使用できません。

これを行うためのよりエレガントな方法は何ですか?

/編集:すべてのすばらしい提案をありがとう。とりあえず、doRedisバックエンドでforeachを使用するように切り替えました。これは、Mac、PC、およびRStudioを介したAmazonでうまく機能します。このスイッチは、「foreach を使用して「lapply」エミュレートする関数を作成する方法を学んだら、とても簡単でした。(また、doRedisは素晴らしいです!)


2
ところでこのような質問は、まだ作成されていない計算科学SEについて非常に話題になっています。


Imo、screen + vimが勝つコンボですが、それはすべての人にとって魅力的ではないかもしれません。
Marc Claesen、2015年

回答:


12

いくつかの方法を考えることができます。私はこれをかなり実行しました、そしてここに私が最も便利であると思った方法があります:

  1. Emacsデーモンモード。-Xスイッチを使用してEC2インスタンスにsshし、Xウィンドウを削除マシンに転送します。デーモンモードを使用すると、接続がタイムアウトしたりドロップしたりしても状態が失われないことが保証されます
  2. マルチコアパッケージを使用する代わりに、foreachパッケージで別の並列バックエンドを使用します。そうすれば、素晴らしいRStudioを使用できます。非並列でコードをテストし、バックエンド(コードの1行または2行)を変更するだけで並列モードに切り替えることができるので、Foreachは優れています。doRedisバックエンドをお勧めします。あなたはクラウドにいるので、複数のマシンを起動することもできます!

Emacsデーモンモードの場合は+1。私は最近かなりのsshを行っていますが、これは本当に便利そうです。
richiemorrisroe

foreachを使用してラップをエミュレートする簡単な方法はありますか?applyを活用するコードをたくさん書いてきましたが、lapplyをmclapplyに単純に置き換えることができるので、マルチコアパッケージが好きです。「foreachlapply」はありますか、それとも多くのコードを書き直す必要がありますか?ありがとう!
Zach

1
まあ、doRedisredisのことしかできない。HPC計算の理由は、膨大な入力だけではありません。

13

最も便利な方法は、VNCサーバーとXFCEのようないくつかの軽い環境をインストールして、自分が好きな場所から使用できる仮想セッションにする(切断が続く)ことです。つまり、次のようなものです。 ここに画像の説明を入力してください

追加の利点は、仮想デスクトップでローカルクリップボードを使用して、X11転送または画像ファイルをコピーするよりもはるかに速くRプロットを表示できることです。

すべてを正しく設定するには多少の努力が必要ですが(X init、sshトンネル)、インターネットにはそのためのチュートリアルが満載です。


1
さらに優れているのは、一般的にパフォーマンス特性が大幅に改善されたNXです。
scw

気に入ったチュートリアルを教えていただけますか、それともGoogleで上位のいくつかの結果を確認する必要がありますか?
Zach

3

Amazon EC2の仕組みがわからないので、簡単なソリューションではうまくいかないかもしれません。しかし、私は通常、scpまたはsftp(Windowsの場合はWinSCPを介して)またはgitを使用します。


3

rsyncを使用してスクリプトとデータファイルをサーバーにプッシュし、「nohup Rscript myscript.R> output.out&」で処理を実行し、完了したらrsyncで結果をプルします。


2
screenまたはtmux、より優れnohupています。また、スクリプトを切り離して、ログアウトによって強制終了されないようにしますが、他のクライアントコンピューターからでも、セッションを再接続してやり直すことができます。tmux一種のテキストモードのウィンドウマネージャとしても使用できます。

0

VIM + tmux + VIMスライム。最高のテキストエディターと、エディターからRコマンドラインにコードを送信する機能(Rstudioの場合と同様)が得られます。


0

Louis Aslettが作成したAMIのおかげで、EC2でR Studioをいつも使用しています。SSHやその他(もちろんR以外)を知っている必要はありません。EC2アカウントが必要です。他の回答の1つで述べたように、R Studioは、たとえばforeachパッケージを介して並列コンピューティングをサポートします。これにより、EC2の機能を実際に活用できます。コンピューティングに最適化されたインスタンス(32コア)を使用することで、MLモデルのトレーニング時間をほとんど無料(1時間に数ドル)で大幅に削減できました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.