Batch script for GPU

Viewing 3 reply threads
  • Author
    Posts
    • #4912

      y-komuro
      Participant

      開発者のみなさま

      spdynをGPUで計算する際のbatch scriptについてお伺いさせていただきます.
      Usageにあるbatch scriptを実行すると,nvidia-smiで表示されるGPU使用率が5%程度となり
      適切な計算が出来ておりません.

      そのため適切なbatch scriptの書き方をご教示いただきたいです.
      まず始めにこちらからどのような情報を提供すればよいか教えていただけますと幸いです.

      計算環境
      CPU: Intel(R) Xeon(R) CPU E5-2670v2 @ 2.50GHz (2 CPU x 10 cores/ node)
      GPU: NVIDIA Tesla K40 (8 GPU/ node)
      (GPU1枚につき,1つのプロセスのみ実行可能な設定)
      Compiler: openmpi 1.10.3 + intel composer xe 2013 sp1.4.211 + cuda6.5

      計算対象
      チュートリアルにあるAll-atom MD simulation of BPTI in NaCl solution

      よろしくお願いいたします.
      小室

    • #4920

      ckobayashi
      Moderator

      GENESIS開発チーム、小林です。

      まず、以下に上げる点をご確認いただきたく思います。

      1. MPIプロセス数とスレッド数
        GENESISのGPUコードの仕様として1つのMPIプロセスは1つのGPUカード(ID)しか使用することができません。(逆に複数のMPIプロセスが1つのGPUカード(ID)を共有することは可能)そのため、1ノードで8GPUカードを利用する際には、MPIプロセスは8の倍数となります。
      2. nvidia-smiのGPU使用率
        GPU使用率は計算の進行によって変化します。MD冒頭のセットアップ等のGPUを使用しない計算部分では使用率は低い状態です。時間経過による使用率の変更はいかがでしょうか?
        #unix系ではwatch等のコマンドを利用されると良いかと思います。
        また、複数のカードを利用している際には、想定する使用カードの全てで使用率が低い状態なのでしょうか?
      3. 適切な計算が出来ない件
        これは、エネルギー等の計算値が正しくないという事でしょうか?
      4. コンパイルオプションの確認
        GENESISのログファイルの冒頭に、
        [STEP0] Architecture and Compiler Information
        という項目があります。そのログから以下の項目をご確認ください

        1. “nonbonding=”の項目でGPUが選ばれていること
        2. “CUDA =”の項目で適切なcudaライブラリが選ばれていること

      ご確認頂いた後、問題がありました場合は、ご提示頂きたい情報は以下となります。

      1. [STEP0]の部分
      2. [STEP2]の”Setup_Mpi_Md> “に示されるプロセス、スレッドの情報
      3. 適切なエネルギー計算が出来ていない場合は、[STEP4] のエネルギー値

      また、GPUを利用するスクリプトのテストとして、1GPUカードを利用するのも良いのではとも思います。

      よろしくお願いいたします。

       

    • #4922

      y-komuro
      Participant

      小林様

      ご回答ありがとうございます.

      1. MPIプロセス数とスレッド数→ 現在,1MPI, 1GPUカードでテストしております.

      2. nvidia-smiのGPU使用率→ 1nsのMDを行いましたが,計算中はずっと5~10%程度です.2GPUカードでもテストしてみましたが,使用した全てのカードでずっと5~10%程度でした.

      3. 適切な計算が出来ない件→ 「適切」とはGPUの使用率が100%にならないという意味で用いました.エネルギー計算等は問題ありません(Regressionテストはすべてクリア).誤解させてすみません.

      4. コンパイルオプションの確認→ nonbonding = GPU, CUDA = Cuda compilation tools, release 6.5, V6.5.12 となっております.

      念のためログファイルをお送りいたします.

      1. [STEP0]
      [STEP0] Architecture and Compiler Information

      GENESIS_Information> GENESIS Information
      version = 1.1.0
      commit ID = $GENESIS_VERSION$ 1.1.0 [2016-07-28 19:32:38 +0900]
      precision = single
      nonbonding = GPU

      Build_Information> Compiler Information
      build host = komuro@ECLS0751
      fortran = ifort (IFORT) 14.0.4 20140805
      option = -xHost -O3 -ip -mkl=parallel -assume byterecl -openmp
      C = icc (ICC) 14.0.4 20140805
      option = -O3 -ip -axCORE-AVX2 -openmp
      defined var. =
      -D_SINGLE -DMPI -DOMP -DFFTE -DLAPACK -DUSE_GPU -DCUDAGPU -DDSFMT_MEXP=19937 –
      DINTEL
      link option =
      -assume byterecl -openmp -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lmkl_la
      pack95_lp64 -L/usr/local/cuda-6.5/lib64 -lcudart -lstdc++
      CUDA = Cuda compilation tools, release 6.5, V6.5.12

      Runtime_Information> Machine and Library Information
      date = 2016/09/13 19:26:10
      cpu model = Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
      exec. host = komuro@ECLS0751
      LD library =
      /usr/local/cuda-6.5/lib64:/home/komuro/caddsoft/openmpi/openmpi-1.10.3/lib:/opt
      /intel/composer_xe_2013_sp1.4.211/compiler/lib/intel64:/opt/intel/composer_xe_2
      013_sp1.4.211/mpirt/lib/intel64:/opt/intel/composer_xe_2013_sp1.4.211/ipp/../co
      mpiler/lib/intel64:/opt/intel/composer_xe_2013_sp1.4.211/ipp/lib/intel64:/opt/i
      ntel/composer_xe_2013_sp1.4.211/compiler/lib/intel64:/opt/intel/composer_xe_201
      3_sp1.4.211/mkl/lib/intel64:/opt/intel/composer_xe_2013_sp1.4.211/tbb/lib/intel
      64/gcc4.4

      2. [STEP2]
      Setup_Mpi_Md> Summary of Setup MPI
      number of MPI processes = 1
      number of OpenMP threads = 8
      total number of CPU cores = 8

      以上です.お手数お掛けしますが宜しくお願いいたします.

    • #4923

      ckobayashi
      Moderator

      小室様

      STEP0の内容をご連絡いただき、ありがとうございました。

      こちらの環境でテストした所、x,y,z方向のドメイン数がそれぞれ2以下([BOUNDARY]セクションのdomain_[x,y,z]に対応する部分)では同様の問題が起きることが分かりました。
      今回の案件ではプロセス数が1ですのでdomain_[x,y,z]はすべて1となってしまうのが原因かと思います。
      この件に関しては現在対応中です。ご連絡いただいたことを感謝いたします。

      ただし、一般的にはGENESISでは1プロセス8スレッドより、8プロセス1スレッドの方が効率が良いと思います。テストとしては、8プロセス2スレッドで試していただけないでしょうか?

      よろしくお願いいたします。

Viewing 3 reply threads

You must be logged in to reply to this topic.