앞 글에서는 Supercomputer가 어떤 것인지 간략하게 살펴 보았고, 왜 Parallel Proceesing을 수행하는 방향으로 발전되어 왔는 지 기술하였다.
이번 글에서는 Parallel Processing과 관련된 키워드에 대해서 알아보려고 한다.
Parallel Processing은 일반적으로 Parallel computing이라고 알려져 있고, 여러 개의 서로 연결된 프로세서들을 동시에 이용하여, 하나의 계산 문제를 해결한다. 여기서 중요한 점은 하나의 계산 문제를 해결한다는 것이다.
이와 달리 Multiprocessing은 두 개 혹은 그 이상의 문제를 동시에 하나 이상의 프로세서를 가지는 하나의 컴퓨터 시스텀에서 동시에 수행한다.
Distributed Processing은 distributed computing이라 알려져 있으며, 서로 다른 위치에 존재하는 여러 개의 컴퓨터 시스템이 네트워크로 연결되어 있어 동시에 사용하는 것을 의미한다. 물리적 제약을 네트워크로 극복하고, 복작한 테스크들을 여러 머신에 나눠서 수행할 수 있다. Cloud-based Computing, Edge Computing 그리고 SaaS(Software as a service)가 이에 해당한다.
Clusters는 한 개의 시스템처럼 같이 동작하는 서로 연결되어 있는 컴퓨터들의 집합을 의미한다. Cluster 중 하나의 컴퓨터를 Node로 표현하고, OS를 구동하며, 동일한 테스크를 수행한다. 노드들은 빠른 네트워크로 연결되어 있으며, 이를 소프트웨어로 컨트롤 및 스케쥴을 수행한다. Cloud Computing이 Cluster computing의 대표적인 예이다. Beowulf cluster는 1994년 NASA에서 제안된 것으로 값싼 PC들로 Cluster를 구성하여 높은 성능의 Parallel Computing을 수행하는 방법이다. 또 다른 키워드로는 Massively parallel이 있는 데, 이는 많은 수의 프로세서를 이용하여 동시에 계산을 수행하는 것이다. 많은 수의 프로세서를 사용하기 위하여 Cluster computing architecture를 사용한다. 대부분의 TOP500 Supercomputer는 Cluster archiecture를 가지고 있다.
Multicores는 한 개의 Chip 안에 2개 이상의 독립적인 프로세서들이 존재하는 것을 Multicore라 한다. 8, 16개 이상의 코어를 가질 때는 Manycores라 부르기도 한다. 앞서 Power, ILP 의 제약을 극복하기 위하여 독립적인 코어를 더 많이 가져가는 형태로 발전하고 있다.
Accelerated Computing은 특정 Task만을 가속하기 위한 Specialized Hardware를 Accelerators라 부르며 이를 활용한다. Accelerators는 General-purpose CPUs보다 특정 Task를 빠르게 수행할 수 있으며, 간단한 프로세서들로 구성되어 있다. GPUs,FPGAs, Google TPUs, NPUs 등과 같은 하드웨어를 Accelerator라 할 수 있다.
Heterogeneous Computing Systems는 컴퓨터 시스템 내부에 한 개이상의 컴퓨팅을 수행할 수 있는 유닛이 존재하는 것이라 한다. 예를 들어 OS를 구동하는 General-purpose processors와 Computing을 수행하는 Accelerators가 같이 존재하는 시스템을 말한다.
Mainframe Computing은 높은 성능의 컴퓨터는 많은 양의 메모리와 프로세서를 가지고, 엄청난 수의 간단한 계산와 트렌잭션을 실시간으로 수행한다. 높은 복원력, 보안 및 민첩성을 요구하는 상용 데이터베이스, 트랜잭션 서버 및 애플리케이션에 매우 중요하다. Mainframe이라는 말은 컴퓨터가 설치된 large cabinet을 'a main frame'이라 부르는 것에서 유래하였다고 한다.
다음 글에서는 parallel processing의 효과에 대해서 알아보겠다.
'IT_Study > CS_Study' 카테고리의 다른 글
[Parallel Computing] (4-2) Arithmetic Operation(1) (0) | 2024.04.14 |
---|---|
[Parallel Computing] (4-1) Binary Representation (2) | 2024.04.13 |
[Parallel Computing] (3) Application - AI/LLM (0) | 2024.04.13 |
[Parallel Computing] (2-2) Parallel Processing이란 무엇일까? (2) | 2024.04.12 |
[Parallel Computing] (1) Supercomputer이란 무엇일까? (0) | 2024.04.12 |
댓글