分子動力學模擬方法與技巧

MD模擬方法與技巧 (右鍵另存下載)

分子動力學模擬方法與技巧

Molecular Dynamics Simulation : Method and Technique

曾飛煥

 

本講義分為四個章節進行。第一章,將以實例逐步講解如何用intel fortran f90程式碼建立分子動力學的二維模擬(2dMDS); 第二章則將程式稍作修改,推廣到兩種類顆粒混合的三維系統(3dMDS); 第三章,轉向介紹如何使用PGI fortran的CUDA模組將2dMDS平行化。最後第四章則會介紹如何使用CUDA fortran的平行化來模擬或說求解二維的反應擴散方程。

在往下閱讀講義時,請確定你已安裝好所需要的程式,並且能讓講義附帶的範例程式正常執行,否則只單純的閱讀講義將會枯燥乏味,保證對你學習程式毫無幫助。關於intel fortran的安裝與範例執行,請見附錄(A)。附錄(B)是CUDA Fortran的安裝設定。附錄(C)是串行程式與平行程式的效率比較。

對「分子動力學模擬方法與技巧」的一則回應

  1. 感謝東海顧先生提醒,Program Parallel 忘了宣告Dx成Device的變數,,因此無法執行。建議修改成

    Module gpu
    Use cudafor
    Real*4,Device,Allocatable,dimension(:) :: Dx !! 原程式主要少了這個宣告

    Contains
    Attributes(global) Subroutine iteration(NT)
    Integer, Value :: NT
    Integer i,j

    i = (blockIdx%x – 1)*NT + threadIdx%x

    Do j = 1, 100
    Dx(i) = sin(Dx(i))
    End do

    End Subroutine
    End Module gpu

    Program parallel
    Use cudafor
    Use gpu
    Real*4,Allocatable,dimension(:) :: Hx

    Integer NB,NT
    NB = 512 ; NT = 256
    idevice = 0
    istat = cudaSetDevice(idevice)
    e
    Allocate(Hx(NB*NT),Dx(NB*NT))

    Call random_number(Hx)
    Dx = Hx
    Call iteration<<>> (NT)
    Hx = Dx
    Write(*,*) Hx(1:100)
    pause
    End Program

發表留言