【问题标题】:Reduction of Elapsed time/ User time using parLapply使用 parLapply 减少经过时间/用户时间
【发布时间】:2016-08-02 02:43:33
【问题描述】:

我试图评估 r 中串行和并行执行的时间安排。在比较“lapply”函数和“parLapply”函数时,我得到了以下结果。

vec1 <- 1:400000
system.time(result <- lapply(vec1, function(x) x+2))

#using 3 nodes
cl3 <- snow::makeCluster(c("localhost","localhost","localhost"), type = "SOCK")
snow::clusterExport(cl3, c("vec1"), envir = .GlobalEnv)
system.time(clus3 <- snow::parLapply(cl3, vec1, function(x) x+2))
snow::stopCluster(cl3)

lapply:用户时间 = 0.69,经过时间 = 0.70 parLapply :用户时间 = 0.49,经过时间 = 0.92

虽然用户时间减少了,但经过的时间似乎增加了。这会发生还是我做错了什么?因为我认为使用并行执行时应该减少经过的时间。

【问题讨论】:

    标签: r parallel-processing lapply elapsedtime


    【解决方案1】:

    如果在单个节点上计算的任务需要很长时间才能运行,这将反映在减少的运行时间上。另一方面,如果计算量很小,大部分时间将花在维护上(设置会话、移动数据、检索数据......)并抵消甚至否定并行计算的效果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-22
      • 1970-01-01
      • 2020-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多