pbdRPC (version 0.2-1)

rpc_rr_example: Example Functions of RPC Related to Remote R Server

Description

Example functions of RPC related to remote R server

Usage

check_rr(machine, cmd = .pbd_env$RPC.RR$check)

checkx_rr(machine, cmd = .pbd_env$RPC.RR$checkx)

kill_rr(machine, cmd = .pbd_env$RPC.RR$kill)

killx_rr(machine, cmd = .pbd_env$RPC.RR$killx)

start_rr(machine, cmd = .pbd_env$RPC.RR$start, preload = .pbd_env$RPC.RR$preload)

startx_rr(machine, cmd = .pbd_env$RPC.RR$startx, preload = .pbd_env$RPC.RR$preload)

Arguments

machine

A machine configuration. See ?machine.

cmd

the main command to be executed on the server.

preload

further commands preloaded before the main command is executed.

Value

Mainly the message received at the command line will be printed, but may not be captured by R.

Details

Using either ssh or plink to launch a remote R server.

NO further input from stdin is expected. Outputs or errors may not be captured by R.

start_rr() starts a remote R server on a remote server. Typical commands to launch a remoter R server is given in the example. The linux/unix commands are as the following:

  • 1)nohup is for the non-stop call after disconnection.

  • 2)Rscript -e 'remoter::server()' is for R to start the remote R server in batch.

  • 3)> .rrlog is to direct the stdout to a file .rrlog

  • 4)2>&1 is to turn stderr to stdout which is the file .rrlog.

  • 5)< /dev/null is to get stdin from /dev/null which is nothing happen.

  • 6)& is to put the batch command for the remoter R server in background.

check_rr() checks if there is a remote R server on a remote server. Lunix/unix commands ps and grep are used.

kill_rr() kills remote R servers if found. Lunix/unix commands ps, grep, awk, and kill are used.

checkx_rr(), killx_rr(), and startx_rr() are functions with virtual X11 windows.

Examples

Run this code
# NOT RUN {
library(pbdRPC, quietly = TRUE)
# rpcopt_set(user = "snoweye", hostname = "192.168.56.101")
m <- machine(user = "snoweye", hostname = "192.168.56.101")

check_rr(m)    # pid 2857 (may differ)
kill_rr(m)     # all remoter pids are killed
check_rr(m)    # make sure no remoter servers are running

### use "; " to bypass multiple commands
preload <- "source ~/work-my/00_set_devel_R; "

### start a new remoter server
start_rr(m, preload = preload)
check_rr(m)
kill_rr(m)

### Example: for module load on supercomputers
preload <- "module load r; "    # e.g. via module load r
start_rr(m, preload = preload)
check_rr(m)
kill_rr(m)
# }
# NOT RUN {

# }

Run the code above in your browser using DataLab