24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1517  |  回复: 2

whpwan

新虫 (初入文坛)

[交流] OpenMP 并行效率没有已有1人参与

有简单程序并行,但没有效率,程序结构很简单,请各位大神帮忙看看:
PROGRAM parallel_01

    USE omp_lib
    IMPLICIT NONE

    INTEGER :: i,j,ii
    REAL, DIMENSION(1:20000000) :: f, g
    REAL :: k,t1,t2,time

    CALL omp_set_num_threads(4)   
    k = 0   
    t1=omp_get_wtime()
    do ii=1,1000                !这层循环是为了使计算时间长一点,方便观察并行时间

    !$omp parallel private(k,i)
    !$omp do
        DO i = 1, 20000000
                f(i) = g(i)+1
                k = k + 1
        END DO
    !$omp end do
    !$omp end parallel
      
    !$omp parallel private(k,j)
    !$omp do
        DO j = 1, 20000000
                g(j) =f(j)+1
                k = k + 1
        END DO
    !$omp end do
    !$omp end parallel
    enddo     !end of ii=1,1000
   
    t2=omp_get_wtime()
    print*,"cost time:",t2-t1
   
END PROGRAM

计算机配置为4核的,分别调用2,3,4核,输出时间几乎一样,没有并行效率,急求大神指点!!!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

whpwan

新虫 (初入文坛)

顶一下
2楼2014-05-15 10:28:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

songseunghun

铁杆木虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
private后面加上num_threads(),括号内写上几个线程,估计会好一些吧
3楼2014-05-17 09:50:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 whpwan 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见