R语言提交后台任务Rstudio\nohup

R语言后台任务用法

在进行大规模数据分析时,R语言提供了后台计算的功能,能将计算任务提交到后台执行,不影响当前窗口的活动,而且不会受到网络波动导致任务中断,提交后就不用盯着一直看,后台运行就可以下班。

Rstudio后台任务


在使用Rstudio过程中,如果已经写好了一个脚本,但是运行该脚本需要很长的时间,那么最好的方式就是提交到后台运行,点击Rstudio左下角的Background jobs按钮,可以看到新的窗口。

然后点击Start Background job来创建一个新的后台任务。

最主要的两个输入信息是待运行的脚本和工作目录,通过这个方式运行,就会自动依次在工作目录下执行source脚本每一行代码。

环境选项设置中,如果想要将运行的结果保存到当前的全局环境,可以勾选,一般情况下不需要勾选,使用默认配置就好。

提交成功后就能看到任务的状态和日志输出信息,点击任务还能看到详细的记录。


如果后台任务运行中遇到问题,也会在此处显示报错信息。

上述方法演示的是通过Rstudio来提交后台任务的方法,另外还可以使用shell终端进行提交。

nohup & 后台任务

通过SSH连接登录后就能进入终端界面,在终端中设置好脚本代码,然后使用nohup命令来提交不挂断的后台任务。

在Linux下,使用nohup命令可以将一个程序在后台运行,并且不会受到终端关闭的影响。通过在命令后面加上&符号,可以将程序放到后台运行。

  1. 打开终端,输入以下命令:

    nohup command &
    

    其中command是要在后台运行的命令或程序,如果是R语言程序的话需要将command改成Rscript xxx.R

  2. 按下回车键后,命令会在后台运行,并且终端会立即返回一个进程ID(PID)。

  1. 关闭终端程序仍然在后台运行

  2. 如果需要查看程序的输出,可以使用以下命令:

    tail -f nohup.out
    

    这会实时显示程序的输出内容。

  3. 如果需要停止后台任务,可以使用以下命令:

    kill PID
    

    其中,PID是进程ID,可以通过ps命令或者其他方式获取。

通过以上步骤,可以在Linux下使用nohup &命令将程序放到后台运行,并且不会受到终端关闭的影响。


下面将介绍R语言后台计算的使用方法,并给出一个示例来演示如何通过后台并行计算来提高速度。

后台计算的概念

后台计算是指在R语言中将计算任务提交到后台运行,而不阻塞当前的R会话。这样可以让我们在计算任务运行的同时,继续进行其他操作,提高了效率。

后台计算的使用方法

R语言提供了多种方式来进行后台计算,下面介绍两种常用的方法。

使用parallel

parallel包是R语言中用于并行计算的核心包,它提供了一系列函数来进行后台计算。下面演示如何使用parallel包进行后台计算:

library(parallel)
# 创建一个后台集群
cl <- makeCluster(4)
# 在后台集群中进行计算
result <- parLapply(cl, 1:10, function(x) {
  # 这里是计算任务的具体代码
  # ...
  return(x^2)
})
# 关闭后台集群
stopCluster(cl)
# 输出计算结果
print(result)

在上面的示例中,首先使用makeCluster函数创建了一个包含4个节点的后台集群。然后使用parLapply函数在后台集群中进行计算,计算任务是对1到10的数字进行平方运算。最后使用stopCluster函数关闭后台集群,并输出计算结果。

使用future

future包是R语言中另一个常用的后台计算包,它提供了更简洁的语法来进行后台计算。下面是一个使用future包的示例。

library(future)
# 设置后台计算引擎为多进程
plan(multiprocess)
# 在后台进行计算
result <- future_lapply(1:10, function(x) {
  # 这里是计算任务的具体代码
  # ...
  return(x^2)
})
# 输出计算结果
print(result)

在上面的示例中,首先使用plan函数将后台计算引擎设置为多进程。然后使用future_lapply函数在后台进行计算,计算任务同样是对1到10的数字进行平方运算。最后输出计算结果。

通过后台并行计算提高速度

下面演示如何通过后台并行计算来提高速度:假设我们有一个包含100万个元素的向量,我们要对每个元素进行平方运算。

首先,我们使用普通的串行计算方法来计算平方:

# 创建一个包含100万个元素的向量
vec <- 1:1000000
# 串行计算平方
result <- lapply(vec, function(x) {
  return(x^2)
})

接下来使用后台并行计算来提高速度:

# 使用parallel包进行后台并行计算
library(parallel)
# 创建一个后台集群
cl <- makeCluster(256)
# 并行计算平方
result <- parLapply(cl, vec, function(x) {
  return(x^2)
})
# 关闭后台集群
stopCluster(cl)

通过后台并行计算,可以将计算任务分配给多个节点同时进行计算,从而提高了计算速度。

总结

通过后台计算可以在计算任务运行的同时,继续进行其他操作,提高了效率,希望本文对你理解和使用R语言后台计算有所帮助。

本文由mdnice多平台发布

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容