#R语言# 并行计算-foreach

最近经常要用R跑程序,每次都要跑好久- -。不加并行,CPU利用率实在低。在此记录下相关的语句。

先导入相关包

library(foreach)
library(doParallel)
library(parallel)
no_cores <- detectCores(no_cores) - 1  # 检测核数,并设置使用的数量
cl = makeCluster(no_cores);	  
registerDoParallel(cl);
# 由于程序中需要用igraph包,这里需给每个线程导入igraph包
clusterEvalQ(cl, library(igraph))		 
# 循环主体
res <- foreach( i = 1:N, .combine = 'c')%dopar%     # .combine 设置了数据的输出格式,'c'代表按向量输出
{
	.....  # 计算的核心代码
	result <- xxxx   		# xxxx是要输出的变量,R里会返回最后一句的变量,
							# 因此要写上这句,保证输出的是想要的值
}
# 结束后,记得释放线程
stopCluster(cl)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值