우노
[Spark] MPI(Message Passing Interface)란? 본문
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가 사용된다.
'Data > Spark' 카테고리의 다른 글
[Spark] RDD 란? (0) | 2020.07.13 |
---|---|
[Spark] Spark와 Hadoop MapReduce의 차이 (0) | 2020.07.12 |
[Spark] Shuffle 이란? (2) | 2020.07.12 |
[Spark] SparkConf, spark-shell, spark-submit, spark-defaults.conf 적용 예 (0) | 2020.07.10 |
[Spark] spark.driver.maxResultSize 오류 (0) | 2020.07.10 |
Comments