Parallelism(병렬성)과 Concurrency(동시성)

2021. 4. 11. 03:13 기타 정보/IT 용어

이번 글에서 parallelism과 concurrency에 대해 정리해보겠습니다.

 

먼저 각각의 개념의 정의는 다음과 같습니다.

 

  • 병렬 컴퓨팅(parallel computing) 또는 병렬 연산은 동시에 많은 계산을 하는 연산의 한 방법이다.
  • 병행성(concurrency)은 컴퓨터 과학에서 여러 계산을 동시에 수행하는 시스템의 특성

뭔가 차이는 있어보이지만 직관적이지는 않은 것 같습니다.

 

조금 더 명확하게 차이를 설명하기 위해 그림을 하나 가져왔습니다.

 

 

위 예시에서 우리는 두 가지 작업(task)을 수행합니다.

각각의 작업은 3 단계의 연산으로 이뤄져있습니다.

 

concurrency에서는 하나의 core에서

작업의 관점에서는 두 작업을 동시에 수행하지만

연산의 관점에서는 두 연산을 번갈아 수행하는 것을 알 수 있습니다.

 

반면 parallelism에서는 작업과 연산,

어느 관점에서 봐도 동시에 수행되는 것을 알 수 있습니다.

 

이 처럼, 각각의 관점을 나누서 생각해보면

조금 더 이해가 쉬울 것 같습니다.

 

또한 위의 두 개념은 서로 반대되는 개념이 아니기 때문에

동시에 적용되는 것 또한 가능합니다.

 

 

그럼 여기까지 parallelism과 concurrency에 대해 정리해보았습니다.

 

출처 : devonce.tistory.com/47?category=887520