Cách tốt nhất để tương tác với phiên R chạy trên đám mây


10

Tôi đã có R chạy trên amazon EC2, sử dụng phiên bản sửa đổi của AMI chất dẫn sinh học . Hiện tại, tôi đang sử dụng putty để ssh vào máy chủ của mình, bắt đầu R từ dòng lệnh, sau đó sao chép và dán tập lệnh của tôi từ notepad ++ vào phiên putty của tôi.

Vấn đề là, tôi ghét cắt và dán. Nó cảm thấy thời kỳ đồ đá và đôi khi tôi gặp phải các vấn đề đệm kỳ lạ làm hỏng mã của tôi. Tôi không thể sử dụng RStudio , vì nó không hỗ trợ đa lõi , điều mà tôi phụ thuộc rất nhiều vào.

Cách thanh lịch hơn để làm điều này là gì?

/ Chỉnh sửa: Cảm ơn tất cả các đề xuất tuyệt vời. Hiện tại, tôi đã chuyển sang sử dụng foreach với phụ trợ doRedis, hoạt động tuyệt vời trên máy Mac, PC và trên amazon thông qua RStudio. Việc chuyển đổi này khá dễ dàng khi tôi học được cách viết một hàm mô phỏng "lapply" bằng cách sử dụng "foreach". (Ngoài ra, doRedis là tuyệt vời!)


2
BTW Câu hỏi như vậy sẽ rất có chủ đề về việc chưa được tạo ra Khoa học tính toán SE .


Imo, screen + vim là combo chiến thắng, nhưng điều đó có thể không hấp dẫn mọi người.
Marc Claesen

Câu trả lời:


12

Tôi có thể nghĩ ra một vài cách. Tôi đã làm điều này khá nhiều và đây là những cách tôi thấy hữu ích nhất:

  1. Chế độ Ememon Daemon . ssh vào phiên bản EC2 với công tắc -X để nó chuyển tiếp các cửa sổ X trở lại máy gỡ bỏ của bạn. Sử dụng chế độ daemon sẽ đảm bảo rằng bạn không bị mất trạng thái nếu kết nối bị ngắt hoặc rớt
  2. Thay vì sử dụng gói đa lõi, hãy sử dụng một phụ trợ song song khác với gói foreach. Bằng cách đó bạn có thể sử dụng RStudio, thật tuyệt vời. Foreach rất tuyệt vì bạn có thể kiểm tra mã của mình không song song, sau đó chuyển sang chế độ song song bằng cách thay đổi phụ trợ của bạn (1 hoặc 2 dòng mã). Tôi khuyên bạn nên phụ trợ doRedis. Bạn đang ở trên đám mây, cũng có thể kích hoạt nhiều máy!

+1 cho chế độ Ememon Daemon. Gần đây tôi đã làm một chút về ssh và điều này có vẻ rất hữu ích.
richiemorrisroe

Có một cách dễ dàng để mô phỏng lapply bằng cách sử dụng foreach? Tôi đã viết rất nhiều mã mà các đòn bẩy áp dụng và tôi thích gói đa lõi vì tôi có thể đơn giản thay thế một cách đơn giản bằng mclapply. Có một 'foreachlapply,' hoặc tôi sẽ phải viết lại rất nhiều mã? Cảm ơn!
Zach

1
Vâng, doRedischỉ có thể làm công cụ redis; đầu vào lớn không phải là lý do duy nhất để tính toán HPC.

13

Cách thuận tiện nhất là chỉ cần cài đặt máy chủ VNC và một số môi trường nhẹ như XFCE và tạo cho mình một phiên ảo mà bạn có thể sử dụng từ bất cứ nơi nào bạn muốn (nó vẫn bị ngắt kết nối), tức là như thế này: nhập mô tả hình ảnh ở đây

Ưu điểm bổ sung là bạn có thể sử dụng bảng tạm cục bộ của mình trong màn hình ảo và xem các ô R cách nhanh hơn thông qua chuyển tiếp X11 hoặc sao chép tệp hình ảnh.

Phải mất một số nỗ lực để thiết lập mọi thứ đúng (X init, ssh đường hầm), nhưng internet có đầy đủ các hướng dẫn làm thế nào để làm điều đó.


1
Thậm chí tốt hơn là NX, thường có nhiều đặc tính hiệu suất được cải thiện.
scw

Bạn có thể thích một hướng dẫn mà bạn thích, hoặc tôi chỉ nên nhìn vào kết quả cặp đôi hàng đầu trên google?
Zach

3

Tôi không biết Amazon EC2 hoạt động như thế nào, vì vậy có thể các giải pháp đơn giản của tôi không hoạt động. Nhưng tôi thường sử dụng scp hoặc sftp (thông qua WinSCP nếu tôi ở trên Windows) hoặc git.


3

Tôi sẽ sử dụng rsync để đẩy các tập lệnh và tệp dữ liệu đến máy chủ, sau đó "nohup Rupcript myscript.R> output.out &" để chạy mọi thứ và khi kết thúc, rsync sẽ kéo kết quả.


2
screenhoặc tmuxtốt hơn nohup- họ cũng tách tập lệnh để nó không bị hủy khi đăng xuất, nhưng cho phép gắn lại phiên và bắt đầu lại, ngay cả từ máy tính khách khác. tmuxthậm chí có thể được sử dụng như một loại trình quản lý cửa sổ chế độ văn bản.

0

VIM + tmux + VIM Slime. Bạn nhận được trình soạn thảo văn bản lớn nhất và khả năng gửi mã từ trình soạn thảo đến dòng lệnh R (giống như trong Rstudio).


0

Tôi sử dụng R Studio trên EC2 mọi lúc nhờ vào AMI được tạo bởi Louis Aslett . Bạn không cần phải biết bất kỳ SSH hoặc bất cứ điều gì (trừ R, tất nhiên). Bạn chỉ cần một tài khoản EC2. Như đã đề cập trong một trong những câu trả lời khác, R Studio không hỗ trợ tính toán song song, thông qua gói foreach chẳng hạn. Điều này thực sự cho phép khai thác sức mạnh của EC2. Bằng cách sử dụng một cá thể được tối ưu hóa tính toán (32 lõi), tôi đã có thể cắt giảm đáng kể thời gian đào tạo cho các mô hình ML của mình mà hầu như không mất phí (một vài đô la một giờ).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.