小编Mxb*_*sdl的帖子

在 Linux 上通过 future_apply() 杀死 future

我习惯future_lapply()在 Linux 机器上并行我的代码。如果我提前终止进程,则只有一个工作线程被释放,并且并行进程将继续存在。我知道我可以输入tools::pskill(PID)结束每个单独的进程,但这很乏味,因为我在 26 个核心上运行。

是否有办法从 R 对 linux 进行系统调用来获取所有活动的 PID?

future_lapply我是这样设置的:

# set number of workers
works <- 26
plan(multiprocess, workers = works)
future_lapply(datas, function(data) {
  # do some long processes
}
Run Code Online (Sandbox Code Playgroud)

如果我终止进程并运行,top我仍然会看到: 在此输入图像描述

因为我的并行会话仍在运行。

更新会话信息:
version.string R version 3.6.2 (2019-12-12)
future 1.12.0
future.apply 1.2.0

linux parallel-processing r r-future

6
推荐指数
1
解决办法
1749
查看次数

标签 统计

linux ×1

parallel-processing ×1

r ×1

r-future ×1