Cara terbaik untuk berinteraksi dengan sesi R yang berjalan di cloud


10

Saya menjalankan R di amazon EC2, menggunakan versi modifikasi biokonduktor AMI . Saat ini, saya menggunakan dempul untuk ssh ke server saya, mulai R dari baris perintah, dan kemudian menyalin dan menempelkan skrip saya dari notepad ++ ke sesi dempul saya.

Masalahnya, saya benci memotong dan menempel. Rasanya batu zaman dan saya kadang-kadang mendapatkan masalah buffering aneh yang mengacaukan kode saya. Saya tidak dapat menggunakan RStudio , karena tidak mendukung multicore , yang sangat saya andalkan.

Apa cara yang lebih elegan untuk melakukan ini?

/ Sunting: Terima kasih atas semua saran yang bagus. Untuk saat ini, saya telah beralih menggunakan foreach dengan backend doRedis, yang bekerja sangat baik di Mac, PC saya, dan di amazon melalui RStudio. Pergantian ini cukup mudah setelah saya belajar menulis fungsi yang mengemulasi "lapply" menggunakan "foreach." (Juga, doRedis luar biasa!)


2
BTW Pertanyaan seperti itu akan sangat pada topik yang belum dibuat Ilmu Komputasi SE .


Imo, layar + vim adalah kombo yang menang, tetapi itu mungkin tidak menarik bagi semua orang.
Marc Claesen

Jawaban:


12

Saya bisa memikirkan beberapa cara. Saya sudah melakukan ini cukup banyak dan inilah cara yang menurut saya paling berguna:

  1. Mode Daemon Emacs . ssh ke instance EC2 dengan sakelar -X sehingga meneruskan X windows kembali ke mesin hapus Anda. Menggunakan mode daemon akan memastikan bahwa Anda tidak kehilangan status jika koneksi Anda habis atau putus
  2. Alih-alih menggunakan paket multicore, gunakan backend paralel yang berbeda dengan paket foreach. Dengan begitu Anda bisa menggunakan RStudio, yang fantastis. Foreach hebat karena Anda dapat menguji kode Anda dalam non-paralel, kemudian beralih ke mode paralel dengan hanya mengubah backend Anda (1 atau 2 baris kode). Saya merekomendasikan backend doRedis. Anda berada di awan, mungkin juga jalankan beberapa mesin!

+1 untuk mode Daemon Emacs. Saya telah melakukan sedikit ssh belakangan ini, dan ini terlihat sangat berguna.
richiemorrisroe

Apakah ada cara mudah untuk meniru dengan menggunakan foreach? Saya telah menulis banyak kode yang memanfaatkan berlaku, dan saya suka paket multicore karena saya dapat dengan mudah mengganti lapply dengan mclapply. Apakah ada 'foreachlapply,' atau apakah saya harus menulis ulang banyak kode? Terima kasih!
Zach

1
Yah, doRedishanya bisa melakukan hal-hal redis; input besar bukan satu-satunya alasan perhitungan HPC.

13

Cara yang paling nyaman adalah hanya dengan menginstal VNC server dan beberapa lingkungan ringan seperti XFCE dan menjadikan diri Anda sebuah sesi virtual yang dapat Anda gunakan dari mana pun Anda inginkan (itu tetap terputus), yaitu sesuatu seperti ini: masukkan deskripsi gambar di sini

Barang tambahan adalah Anda dapat menggunakan clipboard lokal di desktop virtual dan melihat plot R jauh lebih cepat daripada melalui penerusan X11 atau menyalin file gambar.

Dibutuhkan beberapa upaya untuk mengatur semuanya dengan benar (X init, ssh tunnel), tetapi internet penuh dengan tutorial tentang hal itu.


1
Yang lebih baik lagi adalah NX, yang umumnya memiliki karakteristik kinerja yang jauh lebih baik.
scw

Bisakah Anda suka tutorial yang Anda suka, atau haruskah saya melihat hasil pasangan teratas di google?
Zach

3

Saya tidak tahu bagaimana Amazon EC2 bekerja, jadi mungkin solusi sederhana saya tidak berfungsi. Tapi saya biasanya menggunakan scp atau sftp (melalui WinSCP jika saya menggunakan Windows) atau git.


3

Saya akan menggunakan rsync untuk mendorong skrip dan file data ke server, lalu "nohup Rscript myscript.R> output.out &" untuk menjalankan sesuatu dan ketika selesai, rsync untuk menarik hasilnya.


2
screenatau tmuxlebih baik daripada nohup- mereka juga melepaskan skrip sehingga tidak akan terbunuh oleh logout, tetapi memungkinkan untuk memasang kembali sesi dan memulai kembali, bahkan dari komputer klien lainnya. tmuxbahkan dapat digunakan sebagai semacam window manager mode teks.

0

VIM + tmux + VIM Slime. Anda mendapatkan editor teks terbaik dan kemampuan untuk mengirim kode dari editor ke baris perintah R (seperti di Rstudio).


0

Saya menggunakan R Studio di EC2 sepanjang waktu berkat AMI yang dibuat oleh Louis Aslett . Anda tidak harus tahu SSH atau apa pun (selain R, tentu saja). Anda hanya perlu akun EC2. Seperti disebutkan dalam salah satu jawaban lain, R Studio memang mendukung komputasi paralel, misalnya melalui paket foreach . Ini benar-benar memungkinkan memanfaatkan kekuatan EC2. Dengan menggunakan instance yang dioptimalkan oleh komputasi (32 core), saya dapat secara signifikan mengurangi waktu pelatihan untuk model ML saya dengan hampir tanpa biaya (beberapa dolar per jam).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.