클라우드에서 실행되는 R 세션과 상호 작용하는 가장 좋은 방법


10

바이오 컨덕터 AMI 의 수정 된 버전을 사용하여 Amazon EC2에서 R을 실행하고 있습니다. 현재 퍼티를 사용하여 명령 줄에서 R을 시작한 다음 스크립트를 메모장 ++에서 퍼티 세션으로 복사하여 붙여 넣습니다.

문제는 잘라내어 붙여 넣기를 싫어한다는 것입니다. 그것은 나이가 들었고 때로는 코드를 망치는 이상한 버퍼링 문제가 발생합니다. RStudio멀티 코어를 지원하지 않기 때문에 사용할 수 없습니다 .

이것을하는 더 우아한 방법은 무엇입니까?

/ 편집 : 모든 훌륭한 제안에 감사드립니다. 지금은 doRedis 백엔드와 함께 foreach를 사용하도록 전환했습니다. doRedis 백엔드는 Mac, PC 및 RStudio를 통해 아마존에서 훌륭하게 작동합니다. 이 스위치는 "foreach "를 사용하여 " lapply"에뮬레이트 하는 함수 를 작성하는 방법을 배운 후에는 매우 쉬웠습니다 . (또한 doRedis는 훌륭합니다!)


2
BTW 이러한 질문은 아직 Computational Science SE 에서 아직 만들어지지 않은 주제입니다 .


Imo, screen + vim 은 승리하는 콤보이지만 모든 사람에게 호소하지는 않습니다.
Marc Claesen

답변:


12

몇 가지 방법을 생각할 수 있습니다. 나는 이것을 꽤 많이했고 여기에 내가 가장 유용한 방법이 있습니다 :

  1. 이맥스 데몬 모드 . -X 스위치를 사용하여 EC2 인스턴스로 ssh하여 X 윈도우를 제거 시스템으로 다시 전달합니다. 데몬 모드를 사용하면 연결 시간이 초과되거나 끊어지면 상태를 잃지 않습니다.
  2. 멀티 코어 패키지를 사용하는 대신 foreach 패키지와 다른 병렬 백엔드를 사용하십시오. 그렇게하면 RStudio를 사용할 수 있습니다. 환상적입니다. 병렬이 아닌 코드를 테스트 한 다음 백엔드 (1 또는 2 줄의 코드)를 변경하여 병렬 모드로 전환 할 수 있기 때문에 Foreach는 훌륭합니다. doRedis 백엔드를 권장합니다. 클라우드에 있다면 여러 머신을 작동시킬 수 있습니다!

이맥스 데몬 모드 +1 나는 최근에 꽤 많은 ssh를하고 있었고, 이것은 정말로 유용하게 보입니다.
richiemorrisroe 2016 년

foreach를 사용하여 lapply를 모방하는 쉬운 방법이 있습니까? 나는 적용하는 많은 코드를 작성했으며, 멀티 코어 패키지를 좋아한다. 'foreachlapply'가 있습니까, 아니면 많은 코드를 다시 작성해야합니까? 감사!
Zach

1
글쎄, doRedisredis 일만 할 수 있습니다; HPC 계산의 유일한 이유는 큰 입력이 아닙니다.

13

가장 편리한 방법은 VNC 서버와 XFCE와 같은 가벼운 환경을 설치하고 원하는 곳 (연결 끊김이 유지됨)에서 사용할 수있는 가상 세션을 만드는 것입니다. 여기에 이미지 설명을 입력하십시오

추가적인 이점은 가상 데스크톱에서 로컬 클립 보드를 사용할 수 있으며 X11 전달 또는 이미지 파일 복사보다 R 플롯이 더 빠릅니다.

모든 것을 올바르게 설정하려면 약간의 노력이 필요하지만 (X init, ssh tunnel) 인터넷에는 그 방법에 대한 자습서가 가득합니다.


1
일반적으로 성능 특성이 훨씬 향상된 NX가 더 좋습니다.
scw

당신이 좋아하는 튜토리얼을 원하십니까, 아니면 Google의 상위 몇 가지 결과를보아야합니까?
Zach

3

Amazon EC2의 작동 방식을 모르므로 간단한 솔루션이 작동하지 않을 수 있습니다. 그러나 일반적으로 scp 또는 sftp (Windows의 경우 WinSCP를 통해) 또는 git을 사용합니다.


3

rsync를 사용하여 스크립트와 데이터 파일을 서버로 푸시 한 다음 "nohup Rscript myscript.R> output.out &"를 실행하여 작업을 마치고 rsync를 사용하여 결과를 가져옵니다.


2
screentmux있습니다 더 나은보다 nohup- 그들은 또한이 로그 아웃에 의해 살해되지 않도록 스크립트를 분리하지만, 심지어는 다른 클라이언트 컴퓨터에서 세션을 다시 연결하고 다시 시작 할 수 있습니다. tmux일종의 텍스트 모드 창 관리자로도 사용할 수 있습니다.

0

VIM + tmux + VIM Slime. 가장 뛰어난 텍스트 편집기와 편집기에서 R 명령 행으로 코드를 보내는 기능이 있습니다 (Rstudio와 동일).


0

Louis Aslett이 만든 AMI 덕분에 항상 EC2에서 R Studio를 사용 합니다. SSH 또는 R을 제외하고는 아무것도 알 필요가 없습니다. EC2 계정 만 있으면됩니다. 다른 답변 중 하나에서 언급했듯이 R Studio는 foreach 패키지를 통해 병렬 컴퓨팅을 지원 합니다. 이를 통해 EC2의 강력한 기능을 활용할 수 있습니다. 컴퓨팅 최적화 인스턴스 (32 코어)를 사용하여 비용이 거의 들지 않는 (시간당 몇 벅) ML 모델의 교육 시간을 크게 줄일 수있었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.