Parallelism(병렬성)과 Concurrency(동시성)
이번 글에서 parallelism과 concurrency에 대해 정리해보겠습니다.
먼저 각각의 개념의 정의는 다음과 같습니다.
- 병렬 컴퓨팅(parallel computing) 또는 병렬 연산은 동시에 많은 계산을 하는 연산의 한 방법이다.
- 병행성(concurrency)은 컴퓨터 과학에서 여러 계산을 동시에 수행하는 시스템의 특성
뭔가 차이는 있어보이지만 직관적이지는 않은 것 같습니다.
조금 더 명확하게 차이를 설명하기 위해 그림을 하나 가져왔습니다.
위 예시에서 우리는 두 가지 작업(task)을 수행합니다.
각각의 작업은 3 단계의 연산으로 이뤄져있습니다.
concurrency에서는 하나의 core에서
작업의 관점에서는 두 작업을 동시에 수행하지만
연산의 관점에서는 두 연산을 번갈아 수행하는 것을 알 수 있습니다.
반면 parallelism에서는 작업과 연산,
어느 관점에서 봐도 동시에 수행되는 것을 알 수 있습니다.
이 처럼, 각각의 관점을 나누서 생각해보면
조금 더 이해가 쉬울 것 같습니다.
또한 위의 두 개념은 서로 반대되는 개념이 아니기 때문에
동시에 적용되는 것 또한 가능합니다.
그럼 여기까지 parallelism과 concurrency에 대해 정리해보았습니다.
'기타 정보 > IT 용어' 카테고리의 다른 글
크롤링(crawling) - robots.txt와 주의점 (0) | 2023.04.25 |
---|---|
RESTful API 란? (0) | 2023.04.25 |
Sync, Async & Blocking, Non-Blocking 파헤치기 (0) | 2021.04.11 |
[IT Term] Buffer Flush (버퍼 플러시) (0) | 2021.04.01 |
[IT Term] Distributed System(분산 시스템) (0) | 2021.04.01 |
[IT Term]멀티미디어(Multimedia) (0) | 2021.04.01 |
[IT Term] 쿠키(Cookie), 세션(Session) (0) | 2021.04.01 |
[IT Term] Web Template(웹 템플릿) (0) | 2021.04.01 |