AI 멀티노드 활용
가. HOROVOD
1. HOROVOD (Tensorflow) 설치 및 확인
1) 설치 방법
$ module load gcc/10.2.0 cuda/11.4 cudampi/openmpi-4.1.1 python/3.7.1 cmake/3.16.9
$ conda create -n my_tensorflow
$ source activate my_tensorflow
(my_tensorflow) $ conda install tensorflow-gpu=2.0.0 tensorboard=2.0.0 tensorflow-estimator=2.0.0 python=3.7 cudnn cudatoolkit=10 nccl=2.8.3
(my_tensorflow) $ HOROVOD_WITH_MPI=1 HOROVOD_GPU_OPERATIONS=NCCL \
HOROVOD_NCCL_LINK=SHARED HOROVOD_WITH_TENSORFLOW=1 \
pip install --no-cache-dir horovod==0.23.02) 설치 확인
2. HOROVOD (Tensorflow) 실행 예제
1) 작업제출 스크립트를 이용한 실행
2) 인터렉티브 작업제출을 이용한 실행
3. HOROVOD (Pytorch) 설치 및 확인
1) 설치 방법
2) 설치 확인
4. HOROVOD (Pytorch) 실행 예제
1) 작업제출 스크립트 예제
2) 인터렉티브 작업제출을 이용한 실행
나. GLOO
1. GLOO 실행 예제
1) 작업제출 스크립트 예제
2) 인터렉티브 작업제출을 이용한 실행
다. Ray
1. Ray 설치 및 단일 노드 실행 예제
1) 설치 방법
2) 작업제출 스크립트 예제
3) 인터렉티브 작업제출을 이용한 실행
2. Ray Cluster 설치 및 멀티 노드 실행 예제

1) 설치 방법
2) 작업제출 스크립트 예제
3) output
3. Ray Cluster (pytorch) 설치 및 멀티 노드 실행 예제
1) 설치 방법
2) 작업제출 스크립트 예제
3) output
라. Submit it
1. 예제 (1)
2. 예제 (2)

3. Submit: Multitask Job 예제
마. NCCL
1. NCCL설치 및 확인
1) 설치 방법
2) 설치 확인
2. NCCL실행 예제
1) 실행 예제 다운로드
2) 실행 예제 컴파일
3) 실행 결과 확인
4) 위의 Example 3을 이용한 2노드 8GPU 실행 예제
4-1) 작업스크립트
4-2) 예제 코드
4-3) 실행 결과

바. Tensorflow Distribute
1. Conda 환경에서 tensorflow 설치 및 확인
1) 설치 방법
2) 설치 확인
2. 단일 노드, 멀티 GPU 활용(tf.distribute.MirroredStrategy() 사용)
1) 코드 예제(tf_multi_keras.py)
2) 인터렉티브 작업 제출(1노드 4개 GPU)
3) 배치 작업 제출 스크립트(1노드 4GPU)(tf_dist_run.sh)
3. 멀티 노드, 멀티 GPU 활용(tf.distribute.MultiWorkerMirroedStrategy() 사용)
1) 코드 예제 수정
2) 인터렉티브 작업 제출(2노드 각 4 GPU)
3) 배치 작업 제출 스크립트(2노드 각4GPU) (tf_multi_run.sh)
4. 참조
사. PytorchDDP
1. 작업제출 스크립트 예제
1) 단일노드 예제(단일노드 2GPU)
2) 멀티노드 예제(2노드 2GPUs)
Last updated