Fortran Coder

查看: 7436|回复: 7
打印 上一主题 下一主题

[并行] 关于利用OPENMP并行的一个问题

[复制链接]

799

帖子

2

主题

0

精华

大宗师

F 币
3797 元
贡献
2270 点
楼主
发表于 2020-4-22 10:30:59 | 显示全部楼层
随机数子程序不能用于并行域,可能会出问题,三个部分得到相同的值。
[Fortran] 纯文本查看 复制代码
logical b
b=.false.
do i=1,10000
if(mod(i,50)==0) then
b=.not.b
if(b) then
交换t1,t2
else
交换t2,t3
end if
end if
end do

799

帖子

2

主题

0

精华

大宗师

F 币
3797 元
贡献
2270 点
沙发
发表于 2020-4-22 14:35:58 | 显示全部楼层
先生成随机数,再并行。

799

帖子

2

主题

0

精华

大宗师

F 币
3797 元
贡献
2270 点
板凳
发表于 2020-4-22 21:55:50 | 显示全部楼层
integer n
n=0
do i=1,10000
if(mod(i,50)==0) then
n=mod(n+1,3)
if(n==0) then
交换t1,t2
elseif(n==...)
交换...
end if
end if
end do
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-11 03:41

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表