当前位置: 首页 > news >正文

英文网站建设公司长沙网站建设

英文网站建设公司,长沙网站建设,四川省人民政府 领导分工,自助做网站傻瓜式自助建站工具前言: 通常,如果进程运行时间超过3分钟,则会考虑使用并行处理。 这听起来可能很复杂,但是并行计算很简单。 当你有一个重复的任务,它占用了你太多宝贵的时间,为什么不使用并行计算来节省时间呢&#xff…

前言:

通常,如果进程运行时间超过3分钟,则会考虑使用并行处理。

这听起来可能很复杂,但是并行计算很简单。

  • 当你有一个重复的任务,它占用了你太多宝贵的时间,为什么不使用并行计算来节省时间呢?
  • 即使你有一个单一的任务,你也可以通过将任务分成更小的部分来从并行处理中受益。

两个广泛使用的并行处理包是parallel和foreach。 

1-并行计算准备阶段:

在R中使用并行计算的主要目的 提高运行速度,由于R是单核运行的程序,现在的计算机都是多核,如果只用一个核跑程序,让计算机的其他核空闲,势必是一种资源的浪费。

library(parallel)# 设置并行计算的核心数
num_cores <- detectCores()
cl <- makeCluster(num_cores)# 执行并行计算的任务
result <- parLapply(cl, data, your_function)# 关闭并行计算的集群
stopCluster(cl)

流程:设置并行计算的核数-->执行并行计算-->关闭并行计算的集群。

无论使使用哪种并行计算包,都是基于上述三个步骤,1-设置并行计算的核数;2 执行并行计算 3 关闭并行计算的集群。

2-各种方法对比

2.0生成数据:

# create test data
set.seed(1234)
df <- data.frame(matrix(data = rnorm(1e7),  ncol = 1000))
dim(df)

 目标:对这个矩阵每行求和。

2.1使用For循环

运行事件3.83mins

# for Example 1
times1 <- Sys.time()
results <- c()for (i in 1:dim(df)[1]) {results <- c(results, sum(df[i,]))
}times2 <- Sys.time()
print(times2 - times1) 
#2.77314 mins#for Example 2
times1 <- Sys.time()
results <- c()for (i in 1:dim(df)[1]) {results[i] <- sum(df[i,])
}times2 <- Sys.time()
print(times2 - times1) 
#2.404386 mins

2.2使用apply函数

当提到循环的时候,我们想到的是For、while循环和apply函数族,可以说apply函数族是代替循环的好方法。

#2
times1 <- Sys.time()
apply(df,1,sum)times2 <- Sys.time()
print(times2 - times1) 
#0.5269971 secs

 2.3使用baseR中自带的函数rowSums()

#3
times1 <- Sys.time()
rowSums(df)
times2 <- Sys.time()
print(times2 - times1)
#0.146533 secs 

2.4使用parallel包

这里用到了对数据进行分割,按照核数1:8进行分割,分割成8份,得到一个list列表对象。然后使用parLapply()函数进行计算。

#4 
# load R Package
library(parallel)
# check cores numbers
detectCores()
# set cores numbers
num_cores <- 8
# start times
times1 <- Sys.time()
# split data
chunks <- split(df, f = rep(1:num_cores, length.out = nrow(df)))
class(chunks) #list 列表
length(chunks)
# create parallel
cl <- makeCluster(num_cores)# computed in parallel
results <- parLapply(cl, chunks, function(chunk){apply(chunk, 1, sum)
})# Turn off the cluster for parallel computing
stopCluster(cl)# combine result
final_result <- unlist(results)times2 <- Sys.time()print(times2 - times1) 
#3.047416 secs

2.5使用foreach包

install.packages("foreach")
install.packages("doParallel")
library(foreach)
library(doParallel)
# 创建一个集群并注册
cl <- makeCluster(8)
registerDoParallel(cl)# 启动并行计算
time1 <- Sys.time()
x2 <- foreach(i = 1:dim(df)[1], .combine = c) %dopar% {sum(df[i,])
}
time2 <- Sys.time()
print(time2-time1)# 在计算结束后别忘记关闭集群
stopImplicitCluster()
stopCluster(cl)
# 53.63808 secs

参考:

Rtips 多核心并行计算

http://www.wooajung.com/news/23221.html

相关文章:

  • 无锡网络推广哪家好成都网站seo收费标准
  • 网站推广策略有哪些伟哥seo博客
  • 网页设计公司网站网站如何做关键词优化
  • 上海市建设厅网站电商运营培训班
  • 沈阳高端网站建设关键词排名优化官网
  • 全国工程建设信息服务平台长沙网站seo收费
  • 焦点网站设计网络优化工程师是干什么的
  • 请问有没有做网站网站怎么优化排名
  • 上海珠宝网站建设淘宝代运营公司排名
  • 有网站加金币的做弊器吗厦门网站建设平台
  • 备案 网站建设方案书全网网站推广
  • 华为云速建站教程广告联盟大全
  • 网站二次开发公司网络营销的四个特点
  • 网站程序如何上传推广软文300字范文
  • b2c电子商务网站制作辽宁seo推广
  • 网页编辑软件 破解版企业网站seo案例分析
  • 做影视网站什么cms好用吗seo外包 靠谱
  • 最新军事新闻今日最新消息seo门户网站
  • 网站怎么做json数据库适合seo的建站系统
  • 尼日利亚网站开发如何注册百度账号
  • 网站建设资源百度爱采购官网首页
  • 建设网站为什么要虚拟主机站长工具天美传媒
  • 企业网站设计开题报告推广方案应该有哪些方面
  • 内部网站制作谁有恶意点击软件
  • 网站空间续费后网页不能打开免费建立个人网站官网
  • asp.net 网站备份电脑培训学校课程
  • 理财公司网站建设方案纯注册app拉新平台
  • 国外有做塑料粒子的网站吗搜索引擎关键词的工具
  • 对新网站做seo大概需要多久韶关seo
  • 网站域名服务器一年多少钱搜索引擎排名营销