Machine Learning

[Book][doit_2]분산 학습

뚜둔뚜둔 2022. 2. 6. 23:51

분산 학습 환경

  • 분산 학습은 분산 컴퓨팅을 기반으로 함.
  • 분산 학습 환경의 큰 축 :
    • 클러스터 컴퓨팅과 클라우드 컴퓨팅 : 컴퓨터를 여러 대 연결하여 컴퓨팅 자원을 늘려 줌
    • 멀티스레드와 멀티코어 : 한번에 여러 작업을 진행 할 수 있도록 함
    • 하드웨어 가속기(GPU)  

 

클러스터 컴퓨팅과 클라우드 컴퓨팅 

  • 클러스터 컴퓨팅 cluster computing은 컴퓨터 여러대를 하나의 커다란 그룹으로 묶어 연산력을 높이는 컴퓨팅 환경
  • 클러스터 컴퓨팅에서 컴퓨터 자원 하나는 특별히 노드라고 표현
  • 클러스터 컴퓨팅은 클라우드 컴퓨팅cloud computing으로 발전함
    • 클라우드 컴퓨팅은 원하는 자원을 주문한 즉시 바로 사용하고, 비용을 사용한 시간과 자원만큼만 지불하는 매우 유연한 컴퓨팅 환경
  • 두 컴퓨팅 환경 모두 네트워크 구조에 따라 성능에 영향을 끼침

멀티스레드와 멀티코어

  • 한 CPU 안에서 여러 연산이 병렬로 진행되는 기술
  • 멀티스레드는 소프트웨어를 활용하는 방법과 하드웨어를 활용하는 방법이 있음
  • 한 CPU에서 여러 작업을 하는 스레드와 달리 멀티코어는 CPU코어를 여러개 사용하는 기술
  • 멀티 스레드와 멀티 코어는 애플리케이션의 병렬 처리 모델에 따라 성능이 좌우 됨

하드웨어 가속기(GPU) 

  • GPU,TPU(tenfor porcessing unit), FPGA(field programmable gate array)가 있으며 이들은 모두 컴퓨터의 연산자원인  CPU, 메모리를 사용하지 않음
  • 연산 유닛과 메모리 구조를 따로 가지고 있음
  • 하드웨어 가속기는 특정 연산을 하드웨어로 직접 구현하거나 명령어 하나를 대량의 데이터에 적용하는 SIMD single instruction multiple data를 극대화한 장치
  • NVIDIA의 GPU는 연산 유닛인 ALU arithmetic logic unit를 대량으로 집적하고 공유 메모리를 통해 SIMD를 극대화 함
  • 하드웨어 가속기는 하드웨어를 활용하여 멀티스레드를 확장한것이라 생각해도 됨.

 

분산 학습을 위한 소프트웨어 

CPU SIMD라이브러리와 하드웨어 가속기 라이브러리

  • 멀티스레드와 멀티코어를 활용하려면 하드웨어 가속기에 명령어를 직접 전달해 주는 소프트웨어가 필요
  • (->> CPU제조사에서 제공하는 컴파일러나 명령어가 호환되는 컴파일러가 필요함)
  • 하드웨어 가속기를 사용하는 소프트웨어를 만들려면 해당 하드웨어 제조사에서 제공하는 CUDA같은 저수준 툴킷과 관련된 프레임 워크가 필요

분산 컴퓨팅 라이브러리 

  • 여러 컴퓨터를 네트워크로 연결하려면 별도의 소프트웨어가 필요함
  • 가장 간단한 통신 라이브러리 :  소켓socket (>>소켓을 사용하면 TCP/IP를 직접 사용할 수 있지만, 소켓은 컴퓨터 끼리 직접 통신을 하는 기능만 제공)
  • 분산학습에는 컴퓨터간 통신 뿐 아니라 다양한 데이터를 교환할 떄 발생하는 오버헤드가 제거된 고수준의 통신을 갖추어야함.
  • 분산 컴퓨팅 라이브러리가 필요하다
  • 분산 컴퓨팅 라이브러리
    • MPI 라이브러리 
    • NCCL 라이브러리
    • Horovod 라이브러리
    • RLlib 라이브러리 : 강화학습에 특화된 라이브러리

머신러닝 프레임워크 

  • 텐서플로우, 파이토치, 카페등이 있음
  • 머신러닝에 필요한 연산과 분산 학습을 위해 다양한 라이브러리를 쉽게 사용할 수 있도록 되어있음

 

 

 

개발할떄, 많이 사용하고, 언급되는 단어들인데 개념정리를 안하고 사용했던 것 같다.
정리하고 나니 개발 할 때 도움이 될것 같은 느낌~? ㅎㅎㅎㅎ
한번 정도는 제대로 이해하고 정리해두면 개발하는데 많은 도움이 될 것 같다

 

 

 

@book{Do-it-Reinforcement-Learning,
  title={Do it! 강화 학습 입문},
  author={조규남, 맹윤호, 임지순},
  isbn={9791163032526},
  url={http://www.yes24.com/Product/Goods/101924618},
  year={2021},
  publisher={이지스퍼블리싱}
}

반응형

'Machine Learning' 카테고리의 다른 글

Supervised Learning & Unsupervised Learning  (0) 2022.04.26
what is Machine Learning?  (0) 2022.04.26
NLP 를 위한 CNN  (0) 2020.07.14
Word2Vec  (0) 2020.07.13
Bert  (0) 2020.07.13