作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用 future_lapply()
在 Linux 机器上并行我的代码。如果我提前终止进程,只有一名 worker 被释放并且并行进程继续存在。我知道我可以输入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
}
top
我还是会看到:
最佳答案
我希望这有帮助。
require(future)
works <- 26
plan(multiprocess, workers = works)
future_lapply(datas, function(data) {
# do some long processes
})
# get all PIDs of the r processess
v <- listenv::listenv() # requires listenv package
for (ii in 1:works) {
v[[ii]] %<-% {
Sys.getpid()
}
}
for (i in 1:works) {
#For windows
system(sprintf("taskkill /F /PID %s", v[[i]]))
#For Linux
system(sprintf("kill -9 %s", v[[i]]))
}
关于r - 在 Linux 上从 future_apply() 杀死 future ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59652303/
我用 future_lapply()在 Linux 机器上并行我的代码。如果我提前终止进程,只有一名 worker 被释放并且并行进程继续存在。我知道我可以输入tools::pskill(PID)结束
我是一名优秀的程序员,十分优秀!