Skip to content

Instantly share code, notes, and snippets.

@ogawa
Created January 22, 2019 09:03
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ogawa/e505d147c8f9a70f9e5d6e57de20e014 to your computer and use it in GitHub Desktop.
Save ogawa/e505d147c8f9a70f9e5d6e57de20e014 to your computer and use it in GitHub Desktop.

Horovodテスト

インタラクティブノード上か、qrshでログインした計算ノード上で以下のように環境を構築しておきます。

$ module load python/3.6/3.6.5
$ module load cuda/9.0/9.0.176.4
$ module load cudnn/7.4/7.4.2
$ module load openmpi/2.1.5
$ python3 -m venv horovod
$ source horovod/bin/activate
(horovod) $ pip3 install tensorflow-gpu keras torch
(horovod) $ pip3 install horovod
(horovod) $ deactivate

次にhorovod-testというディレクトリを作ってテスト用のコードをダウンロードします。

$ mkdir -p ~/horovod-test
$ cd ~/horovod-test
$ wget https://raw.githubusercontent.com/uber/horovod/master/examples/keras_mnist.py

以下のようなスクリプトを用意します。名前はhorovod-run.shなど適当につけます。

#!/bin/sh                                                                                           
#$ -l rt_F=4                                                                                        
#$ -l h_rt=1:00:00                                                                                  
#$ -N horovod-run                                                                                   
#$ -cwd                                                                                             

source /etc/profile.d/modules.sh
module load python/3.6/3.6.5
module load cuda/9.0/9.0.176.4
module load cudnn/7.4/7.4.2
module load openmpi/2.1.5

source $HOME/horovod/bin/activate
          
mpirun -n 16 -map-by ppr:4:node python3 keras_mnist.py

4ノード割り当て(rt_F=4)、ノードあたり4プロセス(-map-by ppr:4:node)、合計16プロセス(-n 16)立ち上げるようにしています。

qsubで実行するには、以下のように実行します。

$ qsub -g gXXNNNNN horovod-run.sh

qrshでインタラクティブに実行することも可能です。

$ qrsh -g gXXNNNNN -l rt_F=4
$ cd ~/horovod_test
$ sh horovod-run.sh
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment