-
AuthorPosts
-
-
y-komuroParticipant開発者のみなさま
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よろしくお願いいたします.
小室 -
ckobayashiModeratorGENESIS開発チーム、小林です。
まず、以下に上げる点をご確認いただきたく思います。
- MPIプロセス数とスレッド数
GENESISのGPUコードの仕様として1つのMPIプロセスは1つのGPUカード(ID)しか使用することができません。(逆に複数のMPIプロセスが1つのGPUカード(ID)を共有することは可能)そのため、1ノードで8GPUカードを利用する際には、MPIプロセスは8の倍数となります。 - nvidia-smiのGPU使用率
GPU使用率は計算の進行によって変化します。MD冒頭のセットアップ等のGPUを使用しない計算部分では使用率は低い状態です。時間経過による使用率の変更はいかがでしょうか?
#unix系ではwatch等のコマンドを利用されると良いかと思います。
また、複数のカードを利用している際には、想定する使用カードの全てで使用率が低い状態なのでしょうか? - 適切な計算が出来ない件
これは、エネルギー等の計算値が正しくないという事でしょうか? - コンパイルオプションの確認
GENESISのログファイルの冒頭に、
[STEP0] Architecture and Compiler Information
という項目があります。そのログから以下の項目をご確認ください- “nonbonding=”の項目でGPUが選ばれていること
- “CUDA =”の項目で適切なcudaライブラリが選ばれていること
ご確認頂いた後、問題がありました場合は、ご提示頂きたい情報は以下となります。
- [STEP0]の部分
- [STEP2]の”Setup_Mpi_Md> “に示されるプロセス、スレッドの情報
- 適切なエネルギー計算が出来ていない場合は、[STEP4] のエネルギー値
また、GPUを利用するスクリプトのテストとして、1GPUカードを利用するのも良いのではとも思います。
よろしくお願いいたします。
- MPIプロセス数とスレッド数
-
y-komuroParticipant小林様
ご回答ありがとうございます.
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 InformationGENESIS_Information> GENESIS Information
version = 1.1.0
commit ID = $GENESIS_VERSION$ 1.1.0 [2016-07-28 19:32:38 +0900]
precision = single
nonbonding = GPUBuild_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.12Runtime_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.42. [STEP2]
Setup_Mpi_Md> Summary of Setup MPI
number of MPI processes = 1
number of OpenMP threads = 8
total number of CPU cores = 8以上です.お手数お掛けしますが宜しくお願いいたします.
-
ckobayashiModerator小室様
STEP0の内容をご連絡いただき、ありがとうございました。
こちらの環境でテストした所、x,y,z方向のドメイン数がそれぞれ2以下([BOUNDARY]セクションのdomain_[x,y,z]に対応する部分)では同様の問題が起きることが分かりました。
今回の案件ではプロセス数が1ですのでdomain_[x,y,z]はすべて1となってしまうのが原因かと思います。
この件に関しては現在対応中です。ご連絡いただいたことを感謝いたします。ただし、一般的にはGENESISでは1プロセス8スレッドより、8プロセス1スレッドの方が効率が良いと思います。テストとしては、8プロセス2スレッドで試していただけないでしょうか?
よろしくお願いいたします。
-
You must be logged in to reply to this topic.