Лучшая практика отправлять длительные R-задания, а получать их позже?

Как лучше всего работать с ноутбука Mac и отправить файл .Rda на рабочий стол Ubuntu с входными данными, запустить обработку, а затем получить новый файл .Rda с результатами обратно на Mac -ноутбук?

Мой R-рабочий процесс в основном связан с настройкой графиков и изменением текста в отчетах (knitr), что я делаю на относительно слабом Mac-ноутбуке. Но через несколько шагов мне иногда нужно запускать RJAGS или аналогичные тяжелые задания, которые могут занимать много часов (дольше, чем ноутбук может оставаться подключенным). Ввод-.Rda может быть размером в сотни МБ. У меня также есть мощный рабочий стол Ubuntu в другом месте. Было бы здорово, если бы можно было также отправить функцию для запуска.

Я думал, что OpenCpu может быть способом, но, похоже, ноутбук должен оставаться подключенным. Rredis также может быть шагом вперед, но он кажется ограниченным в объеме данных. У меня уже есть SSH-соединение между компьютерами, поэтому, возможно, лучше иметь какой-то скрипт для отправки данных, отправки R-скрипта, запуска R-скрипта, ожидания, получения данных. Я уже установил RStudio Server на Ubuntu, и это работает хорошо, требует постоянного подключения к Ubuntu. Есть еще несколько многокомпьютерных систем, но они как я понимаю требуют вычислений еще и на стартовой машине.

Мне нужно делать это почти ежедневно, поэтому надежный автоматический процесс был бы хорош.


person Chris    schedule 30.11.2015    source источник


Ответы (1)


Самый простой трюк — убедиться, что ваши сеансы сохраняются. Которые вы получаете «бесплатно» с byobu.

Первоначально он был написан для Ubuntu, конечно, доступен в Ubuntu, но теперь также и в большинстве других дистрибутивов Linux, а также в OS X. tmux screen», и вы найдете бесчисленное количество руководств.)

Чтобы использовать его, просто подключитесь к рассматриваемой машине по ssh, запустите byobu (и, при желании, используйте несколько экранов и панелей — см. видео на сайте, ссылка на который приведена выше). Когда пришло время уйти, просто «отсоединитесь». После повторного подключения позже с той же или другой машины просто «повторно подключитесь». Престо.

Изменить: Вот несколько других ответов на R и byobu, которые дать общий вкус. Этот инструмент абсолютно того стоит и является ключевой частью рабочего процесса для многих опытных пользователей.

person Dirk Eddelbuettel    schedule 30.11.2015
comment
Именно то, что я думал. @Chris, механизмы, подобные RPC, такие как OpenCPU, RServe и даже RStudio-server, не будут работать (хорошо), поскольку для них потребуются постоянные соединения. (Кроме того, я не знаю, насколько хорошо OpenCPU будет справляться с длительными вычислениями.) Единственный другой метод, который я могу придумать, - это средство пакетной обработки, которого, насколько мне известно, (a) не существует, и ( б) имеет потенциал для проблем с безопасностью. Этот ответ (@DirkEddelbuettel) на сегодняшний день является самым простым и удобным для использования сейчас. - person r2evans; 30.11.2015
comment
@ r2evans С каких пор RStudio Server требует постоянного подключения? - person Roland; 30.11.2015
comment
Это было предположение, я признаю, что, поскольку он использует браузер для взаимодействия, он не будет продолжать (значительную) обработку без взаимодействия с браузером. Я добавил это поздно, так как @Chris упомянул об этом, но вы правы, я должен проверить это, прежде чем помещать его туда. Знаете ли вы, что он продолжит обработку скриптов после закрытия браузера? - person r2evans; 30.11.2015
comment
@ r2evans Да, это будет продолжаться до тех пор, пока задача не будет завершена, сохраните сеанс и восстановите его при повторном подключении. - person Roland; 01.12.2015
comment
А, спасибо, узнал что-то новое. (Надо было провести это исследование ранее.) С сервером RStudio вам может потребоваться настроить session-timeout-minutes (ссылка), если ваши вычисления займут больше двух часов по умолчанию. Спасибо за толчок, @Roland. - person r2evans; 01.12.2015