오늘의 인기 글
최근 글
최근 댓글
Today
Total
11-30 00:48
관리 메뉴

우노

[Spark] MPI(Message Passing Interface)란? 본문

Data/Spark

[Spark] MPI(Message Passing Interface)란?

운호(Noah) 2020. 7. 12. 21:25

MPI란?

  • Message Passing Interface의 약자로 분산 및 병렬 처리에서 사용되는 표준 라이브러리이다.
  • 병렬컴퓨팅 환경에서 지역적으로 메모리를 따로 가지는 여러 개의 노드(컴퓨터)들이 데이터를 공유하기 위해서는 통신에 대한 규약이 필요한데, 이를 MPI라고 한다.

MPI 사용 예

  • 예를 들어 1부터 1000까지를 더한다 해보자.
  • 만약 코어가 1개라면 1개의 코어를 이용하여 1부터 100까지 더하면 된다.
  • 만약 코어가 10개이고 이 작업을 더 빠르게 수행하고 싶다면 1부터 1000사이를 10개의 구간으로 쪼개어
  • 첫 번째 코어는 1부터 100까지 더하게 하고 두 번째 코어는 101부터 200까지 더하게 하여 10개의 코어에 작업을 분산시킨다.
  • 그 후에 10개의 코어의 결과물들을 한 군데 취합하여 10개의 숫자를 더하면 최종결과가 얻어진다.
  • 이제 실제로 이를 구현할 때, "결과물들을 한 군데 취합하여 최종결과를 얻는 과정"에 해당하는 부분이 MPI가 자신의 역할을 수행하는 부분이다.
  • 즉, 알고리즘을 병렬화 하고 병렬화 과정에서 코어사이의 정보교환 단계에 MPI가 사용된다.
Comments