Najlepszy sposób na interakcję z sesją R. działającą w chmurze


10

Mam R działającą na Amazon EC2, używając zmodyfikowanej wersji bioprzewodnika AMI . Obecnie używam putty do ssh na moim serwerze, rozpoczynając R z wiersza poleceń, a następnie kopiując i wklejając mój skrypt z notatnika ++ do mojej sesji putty.

Chodzi o to, że nienawidzę cięcia i wklejania. Czuję się jak w epoce kamienia łupanego i czasami mam dziwne problemy z buforowaniem, które psują mój kod. Nie mogę korzystać z RStudio , ponieważ nie obsługuje on wielordzeniowych rdzeni , od których w dużej mierze zależę .

Jaki jest bardziej elegancki sposób to zrobić?

/ Edycja: Dziękujemy za wszystkie świetne sugestie. Na razie przeszedłem na używanie foreach z backendem doRedis, który działa świetnie na moim Macu, komputerze i amazonie za pośrednictwem RStudio. Ta zmiana była dość łatwa, gdy nauczyłem się pisać funkcję, która emuluje „lapply” za pomocą „foreach”. (Również doRedis jest niesamowity!)


2
BTW Takie pytanie byłoby bardzo aktualne na temat jeszcze nie utworzonej Computational Science SE .


Imo, screen + vim to zwycięska kombinacja, ale może nie wszystkim się podobać.
Marc Claesen

Odpowiedzi:


12

Mogę wymyślić kilka sposobów. Zrobiłem to całkiem sporo i oto sposoby, które uważam za najbardziej przydatne:

  1. Tryb demona Emacsa . ssh do instancji EC2 za pomocą przełącznika -X, więc przesyła X okna z powrotem do twojego komputera usuwającego. Korzystanie z trybu demona zapewni, że nie stracisz stanu, jeśli połączenie zostanie przekroczone lub zostanie zerwane
  2. Zamiast korzystać z pakietu wielordzeniowego, użyj innego równoległego zaplecza z pakietem foreach. W ten sposób możesz korzystać z RStudio, co jest fantastyczne. Foreach jest świetny, ponieważ możesz przetestować swój kod w trybie nierównoległym, a następnie przejść do trybu równoległego, po prostu zmieniając backend (1 lub 2 linie kodu). Polecam backend doRedis. Jesteś w chmurze, równie dobrze możesz odpalić wiele maszyn!

+1 dla trybu demona Emacsa. Ostatnio robiłem sporo ssh, a to wygląda na bardzo przydatne.
richiemorrisroe

Czy istnieje prosty sposób na emulację laply za pomocą foreach? Napisałem dużo kodu, który ma zastosowanie, i podoba mi się pakiet wielordzeniowy, ponieważ mogę łatwo zastąpić lapply mclapply. Czy istnieje „Foreachlapply”, czy też będę musiał ponownie napisać dużo kodu? Dzięki!
Zach.

1
Cóż, doRedismożna robić tylko rzeczy redis; ogromne nakłady nie są jedynym powodem obliczeń HPC.

13

Najwygodniej jest po prostu zainstalować serwer VNC i niektóre lekkie środowisko, takie jak XFCE, i stworzyć wirtualną sesję, z której można korzystać z dowolnego miejsca (nadal się rozłącza), tj. Coś takiego: wprowadź opis zdjęcia tutaj

Dodatkowymi zaletami jest to, że możesz używać lokalnego schowka na wirtualnym pulpicie i widzieć wykresy R znacznie szybciej niż przez przesyłanie lub kopiowanie plików graficznych za pomocą X11.

Trwa trochę wysiłku, aby wszystko poprawnie skonfigurować (X init, tunel ssh), ale Internet jest pełen samouczków, jak to zrobić.


1
Jeszcze lepszy jest NX, który ma ogólnie znacznie lepszą charakterystykę wydajności.
scw

Czy chcesz samouczek, który Ci się podoba, czy powinienem po prostu spojrzeć na kilka najlepszych wyników w Google?
Zach.

3

Nie wiem, jak działa Amazon EC2, więc może moje proste rozwiązania nie działają. Ale zwykle używam scp lub sftp (przez WinSCP, jeśli jestem w systemie Windows) lub git.


3

Użyłbym rsync do wypchnięcia skryptów i plików danych na serwer, a następnie „nohup Rscript myscript.R> output.out &”, aby uruchomić rzeczy, a po zakończeniu rsync, aby pobrać wyniki.


2
screenlub tmuxsą lepsze niż nohup- usuwają również skrypt, aby nie został zabity przez wylogowanie, ale pozwalają na ponowne dołączenie sesji i rozpoczęcie od nowa, nawet z innego komputera klienckiego. tmuxmoże być nawet używany jako rodzaj menedżera okien w trybie tekstowym.

0

VIM + tmux + VIM Slime. Otrzymasz największy edytor tekstu i możliwość wysyłania kodu z edytora do wiersza poleceń R. (tak jak w Rstudio).


0

Używam R Studio na EC2 cały czas dzięki AMI stworzonym przez Louisa Asletta . Nie musisz znać żadnego SSH ani niczego (oczywiście innego niż R). Potrzebujesz tylko konta EC2. Jak wspomniano w jednej z pozostałych odpowiedzi, R Studio obsługuje obliczenia równoległe, na przykład za pośrednictwem pakietu foreach . To naprawdę pozwala wykorzystać moc EC2. Korzystając z instancji zoptymalizowanej pod kątem obliczeń (32 rdzenie), byłem w stanie znacznie skrócić czas szkolenia dla moich modeli ML bez żadnych kosztów (kilka dolców za godzinę).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.