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


    R语言后台任务用法

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

    Rstudio后台任务

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

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

    alt

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

    alt

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

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

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

    alt

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

    nohup & 后台任务

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

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

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

      nohup command &
      • 1

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

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

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

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

      tail -f nohup.out
      • 1

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

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

      kill PID
      • 1

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

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


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

    后台计算的概念

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

    后台计算的使用方法

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

    使用parallel

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

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

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

    使用future

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

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

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

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

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

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

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

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

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

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

    总结

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

    本文由 mdnice 多平台发布

  • 相关阅读:
    这世上又多了一只爬虫(spiderflow)
    Thread的常用方法
    【数智化人物展】同方有云联合创始人兼总经理江琦:云计算,引领数智化升级的动能...
    Mac 安装HomeBrew(亲测成功)
    逆向-beginners之指针变量
    java计算机毕业设计基于ssm的网上跳蚤市场高校二手闲置交易网站
    leetcode 151. 反转字符串中的单词
    挖金客深交所上市:市值28亿 李征曾遭其妻张宏离婚诉讼
    基于idea做java程序的本地k8s调试-skaffold(一)
    json & ajax & i18n
  • 原文地址:https://blog.csdn.net/ZaoJewin/article/details/133638871