java parallel.for作用_R:使用doParallel和foreach进行并行化

我在R中做了以下连续的小例子:

all_list

all_list[1]

all_list[2]

all_list[3]

all_list[4]

all_list[5]

find

result

index

current_Intervall

current_number

while(current_number <= 5000000){

for(i in 1:length(find[[1]])){

if(current_number == find[[1]][i]){

result[[index]]

index

break

}

}

current_number

last

if(current_number > all_list[[current_Intervall]][last]){

if(current_Intervall == length(all_list)){

break

}else{

current_Intervall

current_number

}

}

print(current_number)

}

我想让这个代码与Windows并行 . 我想到了doParallel包和foreach循环,因为我没有找到支持并行while循环的包 . 现在我试过这个:

library(doParallel)

all_list

all_list[1]

all_list[2]

all_list[3]

all_list[4]

all_list[5]

find

result

index

current_Intervall

current_number

no_cores

cl

registerDoParallel(cl)

print(current_number)

foreach(current_number=1:5000000) %dopar% {

for(i in 1:length(find[[1]])){

if(current_number == find[[1]][i]){

result[[index]]

index

break

}

}

# current_number

last

if(current_number > all_list[[current_Intervall]][last]){

if(current_Intervall == length(all_list)){

break

}else{

current_Intervall

current_number

}

}

print(current_number)

}

stopCluster(cl)

但是打印输出不会打印任何内容,大约2分钟后循环不会终止 . 但是连续的例子在几秒钟之后就成立了 . 我觉得有些不对劲 .

另一个问题是:是否有可能在foreach循环中重新定义计数器编号?在上面的while循环中,我可以设置计数器"current_number"仲裁 . 但我认为在R中,for循环不允许重新定义计数器号,对吗?是否有更好的包或替代循环来并行化第一个例子?

最好的问候,布莱恩

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值