gpt4 book ai didi

R:故意创建低效循环以避免打扰其他服务器用户

转载 作者:行者123 更新时间:2023-12-02 08:12:06 25 4
gpt4 key购买 nike

我必须在我的服务器中处理一个数据集,并使用不同的参数。

这是我正在做的一个虚拟例子

if (!require("pacman")) install.packages("pacman")
p_load(dplyr,DBI)

mtcars_experiments = dbConnect(RSQLite::SQLite(), "mtcars_experiments.sqlite")

for(a in -1:1) {
for(b in -1:1) {
for(c in -1:1) {
mtcars_experiment = mtcars %>%
mutate(my_col = mpg^a + cyl^b + disp^c)

dbWriteTable(mtcars_experiments, paste("mtcars_experiment",a,b,c, sep = "_"), mtcars_experiment)
}
}
}

我知道 for 循环有时效率低下,但在我的例子中,我不想以最大速度计算它。

我正在尝试找到一种既不慢也不快的方法,因为如果我在并行化中使用过多的资源,服务器的其他用户将无法运行他们自己的代码。

在这种情况下我能做什么?我怎样才能进行有界并行化或类似的操作?

谢谢!

最佳答案

两种可能性:

1) 在每次迭代后添加 Sys.sleep(1)。这不消耗资源,并且在每次迭代后 1 秒不执行任何操作。

2) 降低进程的优先级。在 ubuntu 中,您可以通过 renice 20 PROCESS_ID(20 是最低优先级)来执行此操作。

关于R:故意创建低效循环以避免打扰其他服务器用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45721352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com