24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 802  |  回复: 5

wifloveice

金虫 (初入文坛)

[求助] 分子動力學以OPENMP平行化時編譯問題

С???????4??????X????IVF???g????????OPENMP??г?????K??Lennard-Jones ????a???M?Мy???
??????????Y????OPENMP?????\?????????c?????????????У?
??????????? ???P????? CPU??????m?_??100%??
?????????(???????p)???????Y??n(?c???_??????\??r?Y?????)??
????? ??????gOPENMP?a???????N?^?? ?? ??????????`???x?x
M9832043@mail.npust.edu.tw

SUBROUTINE SSEVAL
use omp_lib
IMPLICIT NONE
INTEGER(KIND=4) IN,LIST,NPOINT,I,J,JBEGIN,JEND,NATOM,NABORS,KSORT,NSTEP,NATOM1
REAL(KIND=8) RL,X,Y,Z,XI,YI,ZI,RIJ ,ENERGY,VIRIAL
  LOGICAL LG,LUPDAT
  COMMON /INTGRS/ IN(10)
  COMMON /LGCLS / LG(4)
  COMMON /NABLST/ LIST(45000)  ,NPOINT(360)
  COMMON /POSIT / X(360),Y(360),Z(360)
  COMMON /REALS / RL(26)
  COMMON /ZLOOP / XI,YI,ZI,RIJ ,I,J,JBEGIN,JEND

  EQUIVALENCE (IN(2),KSORT) ,(IN(3),NABORS) ,(IN(4),NATOM)
  EQUIVALENCE (IN(5),NATOM1),(IN(6),NSTEP)
  EQUIVALENCE (RL(6),ENERGY),(RL(24),VIRIAL),(LG(4),LUPDAT)

  ENERGY=0.D0
  VIRIAL=0.D0
  NABORS=0
  LUPDAT=.FALSE.
  IF (MOD(NSTEP,KSORT) .EQ. 0) LUPDAT=.TRUE.

!$OMP PARALLEL PRIVATE(I)
!$OMP DO

  DO 300 I=1,NATOM1
  JBEGIN=NPOINT(I)
  JEND  =NPOINT(I+1)-1
  IF (LUPDAT) THEN
    NPOINT(I)=NABORS+1
        JBEGIN   =I+1
        JEND     =NATOM
  ENDIF
    XI=X(I)
    YI=Y(I)
    ZI=Z(I)
    CALL SSINLP
300 CONTINUE

!$OMP END DO
!$OMP END PARALLEL

  IF (LUPDAT) NPOINT(NATOM)=NABORS+1
  RETURN
  END
***************************************************************
SUBROUTINE SSINLP
IMPLICIT NONE
INTEGER(KIND=4) IN,LIST,NPOINT,I,J,JBEGIN,JEND,JX
REAL(KIND=8) FX,FY,FZ,Z1,X,Y,Z,RL,XI,YI,ZI,RIJ
REAL(KIND=8) CUBE,CUBEH,ENERGY,ESHFT,FSHFT,RCUT,VIRIAL,FOR,ENR,R6INV,RSQINV,RSQ,ZIJ,YIJ,XIJ
LOGICAL LG,LSHIFT,LUPDAT
  COMMON /FORCE / FX(360) ,FY(360) ,FZ(360)
  COMMON /LGCLS / LG(4)
  COMMON /NABLST/LIST(45000),NPOINT(360)
  COMMON /POSIT /X(360),Y(360),Z(360)
  COMMON /REALS /RL(26)
  COMMON /ZLOOP /XI,YI,ZI,RIJ,I,J,JBEGIN,JEND
  EQUIVALENCE (RL(2),CUBE),    (RL(3),CUBEH),  (RL(6),ENERGY)
  EQUIVALENCE (RL(7),ESHFT),   (RL(10),FSHFT), (RL(11),RCUT)   
  EQUIVALENCE (RL(24),VIRIAL), (LG(3),LSHIFT), (LG(4),LUPDAT)

  DO 400 JX=JBEGIN,JEND
  J=JX
  IF (.NOT.LUPDAT) J=LIST(JX)

  XIJ=XI-X(J)
  YIJ=YI-Y(J)
  ZIJ=ZI-Z(J)

  RSQ=XIJ*XIJ+YIJ*YIJ+ZIJ*ZIJ

  RIJ=DSQRT(RSQ)
IF (LUPDAT) CALL SSUPDT

  IF(RIJ.LE.RCUT) THEN
    RSQINV=1.D0/RSQ
        R6INV =RSQINV*RSQINV*RSQINV

   ENR = 4.D0*R6INV*(R6INV-1.D0)
        FOR = RSQINV*48.D0*R6INV*(R6INV-0.5D0)
        IF (LSHIFT) ENR=ENR+ESHFT+RIJ*FSHFT
        IF (LSHIFT) FOR=FOR-RSQINV*RIJ*FSHFT
          FX(I)=FX(I)+FOR*XIJ
      FX(J)=FX(J)-FOR*XIJ
          FY(I)=FY(I)+FOR*YIJ
      FY(J)=FY(J)-FOR*YIJ
          FZ(I)=FZ(I)+FOR*ZIJ
      FZ(J)=FZ(J)-FOR*ZIJ
        ENERGY=ENERGY+ENR
        VIRIAL=VIRIAL-FOR*RSQ
  ENDIF
400 CONTINUE

    RETURN
        END

[ Last edited by ghcacj on 2011-8-27 at 08:44 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yahoohoo

铁杆木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★
御剑江湖(金币+4): 谢谢 2011-08-23 22:06:41
力和位置需要用线程独立的数组来储存。F[NTHD][NATOMS], X[NTHD][NATOMS]。
如果只用一个公共数组,那么多个线程可能同时写入同一个或位置临近的内存,这会导致计算错误以及运算速度下降。
2楼2011-08-23 13:43:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wifloveice

金虫 (初入文坛)

??? ???"????λ?????????????????????????" ????f??????????
1. ???Еr????_????(????????λ????в????c??????в???)
2. ????f????С?
DO 300 I=1,NATOM1
  JBEGIN=NPOINT(I)
  JEND  =NPOINT(I+1)-1
END DO
?@???????з???????????????"?o??"?????????? ???~??????
3楼2011-08-23 17:19:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yahoohoo

铁杆木虫 (著名写手)

【答案】应助回帖

★ ★ ★
御剑江湖(金币+3): 谢谢 2011-08-23 22:06:48
wifloveice(金币+20): 謝謝幫忙 2011-08-25 00:07:13
我没明白你说的是什么意思。
使用多个cpu cores就是为了分担力的计算,假如你有100个原子和2个cpu cores,那么第一个core计算前50个原子,第二个core计算后50个原子。
4楼2011-08-23 17:54:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wifloveice

金虫 (初入文坛)

你好 我再補充說明 要表達的事項
小弟最近看了些資料   得知openmp要如何分割 主要看使用多少cpu
而使用openmp如大致下
!$OMP PARALLEL PRIVATE(I)     <---openmp指令
!$OMP DO                              <---openmp指令
DO I=1,100
N=N+1
END DO
!$OMP END DO                       <---openmp指令
!$OMP END PARALLEL            <---openmp指令

(回到最上頁問題)  但以相同方式放進去分子動力學編碼後 ?K沒有想像中簡單
而大大所提的  以"线程独立的数组来储存" 是否可以再詳細說明 謝謝
5楼2011-08-23 23:01:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yahoohoo

铁杆木虫 (著名写手)

★ ★ ★
御剑江湖(金币+3): 谢谢 2011-08-26 20:09:54
引用回帖:
5楼: Originally posted by wifloveice at 2011-08-23 23:01:18:
你好 我再補充說明 要表達的事項
小弟最近看了些資料   得知openmp要如何分割 主要看使用多少cpu
而使用openmp如大致下
!$OMP PARALLEL PRIVATE(I)     <---openmp指令
!$OMP DO                         ...

如果你真是想学openmp并行,建议你花1-3个月的时间从openmp的基础知识学起再到md的并行。网上有很多资料,完全可以自学。单凭一个帖子解决你的所有问题不现实,
6楼2011-08-26 18:30:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wifloveice 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 348求调剂 +3 车厘子zzz 2026-04-05 3/150 2026-04-05 20:30 by 啵啵啵0119
[考研] 322求调剂 +3 嗯哼哼恒 2026-04-05 3/150 2026-04-05 19:52 by nepu_uu
[考研] 求调剂到0856材料工程 +3 程9915 2026-04-05 3/150 2026-04-05 18:15 by 蓝云思雨
[考研] 080200学硕,机械工程专业277分,求带走! +7 瓶子PZ 2026-03-31 7/350 2026-04-05 17:49 by liucky
[考研] 282求调剂 +3 aaa车辆 2026-04-01 3/150 2026-04-05 17:03 by yulian1987
[考研] 311分 22408 求调剂 +3 bing_bot 2026-04-03 3/150 2026-04-05 00:43 by chongya
[考研] 288环境专硕,求调材料方向 +13 lllllos 2026-04-04 14/700 2026-04-04 23:34 by lqwchd
[考研] 282电子信息0854专硕调剂 +4 202451007219 2026-04-02 6/300 2026-04-04 21:55 by laoshidan
[考研] 309分085801求调剂 +11 MY_angel 2026-03-31 11/550 2026-04-04 19:11 by 蓝云思雨
[考研] 321求调剂 +13 认真求上学 2026-04-02 13/650 2026-04-04 18:23 by macy2011
[考研] 一志愿北京科技大学材料工程085601,求调剂 +17 cdyw 2026-04-02 18/900 2026-04-04 11:14 by w_xuqing
[考研] 求生物学专业调剂-332分 +5 云朵遛弯指南 2026-04-04 5/250 2026-04-04 10:05 by rzh123456
[考研] 材料调剂 +11 吴棂颖! 2026-04-03 11/550 2026-04-04 09:56 by 小小树2024
[考研] 320求调剂 +5 振—TZ 2026-04-02 5/250 2026-04-03 14:42 by fxue1114
[考研] 313求调剂 +3 ~微微凉~ 2026-04-03 3/150 2026-04-03 11:25 by 啵啵啵0119
[考研] 材料求调剂 +10 呢呢妮妮 2026-04-01 13/650 2026-04-02 09:17 by olim
[考研] 一志愿北交大材料工程,总分358 +4 cs0106 2026-04-01 4/200 2026-04-02 07:42 by 尚水阁主
[考研] 302求调剂一志愿北航070300,本科郑大化学 +8 圣日耳曼条 2026-04-01 11/550 2026-04-02 07:40 by chemdavid
[考研] 一志愿北交材料工程总分358 +5 cs0106 2026-04-01 7/350 2026-04-01 11:45 by wangjy2002
[考研] 求调剂 生物学 377分 +6 zzll03 2026-03-31 6/300 2026-03-31 17:33 by 唐沐儿
信息提示
请填处理意见