멀티코어 프로세서 (Multi-core Processor)
쉽게 풀면
예전 CPU는 한 번에 한 가지 작업 흐름만 처리할 수 있었지만, 요즘 CPU는 코어라고 부르는 독립적인 두뇌를 여러 개 넣어서 동시에 여러 작업을 처리한다. 4코어, 8코어, 16코어처럼 코어 수가 많을수록 이론적으로 더 많은 작업을 병렬로 처리할 수 있다. 다만 소프트웨어가 그 여러 코어를 실제로 잘 나눠 쓰도록 작성되어야만 성능 향상을 얻을 수 있으며, 이를 위해 프로그램을 병렬화하는 작업이 필요하다.
왜 중요한가
단일 코어의 동작 속도를 높이는 데는 발열과 소비전력 등 물리적 한계가 있어, 현대 컴퓨팅 성능 향상은 대부분 코어 수를 늘리는 방향으로 이루어져 왔습니다. 그래서 컴퓨터구조, 병렬처리, 고성능컴퓨팅 논문에서는 멀티코어 프로세서를 효율적으로 활용하는 스케줄링과 병렬화 기법이 핵심 주제로 다뤄집니다. 또한 인공지능 학습이나 대규모 데이터 처리처럼 연산량이 많은 응용 분야에서는 멀티코어 자원을 얼마나 잘 활용하느냐가 시스템 전체 성능을 좌우합니다.
논문에서는 이렇게 쓰입니다
CPU의 여러 코어를 동시에 활용해 데이터 준비 작업 속도를 높였다는 의미이다.
임베디드 시스템 연구에서 여러 코어에 작업을 고르게 분배해 성능을 개선한 스케줄링 기법을 설명한 예다.
과학계산 분야에서 순차 알고리즘을 병렬화해 멀티코어의 이점을 활용한 사례를 설명한 예다.
조금 더 깊게 보면
멀티코어 시스템의 성능을 논문에서 평가할 때는 코어 수를 늘렸을 때 성능이 얼마나 향상되는지를 나타내는 병렬화 성능 향상(speedup)과 확장성(scalability) 개념이 함께 등장하며, 이론적 한계를 설명할 때 암달의 법칙(Amdahl's law)이 자주 인용됩니다. 또한 여러 코어가 캐시나 메모리를 공유하면서 발생하는 캐시 일관성 유지 비용, 코어 간 통신 오버헤드도 실제 성능에 큰 영향을 주는 요소로 다뤄집니다.
주의할 점
코어 수가 많다고 항상 성능이 비례해서 늘어나는 것은 아니며, 작업이 충분히 병렬화 가능한지, 코어 간 통신 비용은 얼마인지에 따라 실제 이득이 달라진다.