1. 개요
한 컴퓨터에 2개 이상의 CPU가 장착된 것을 말한다. 한때는 이를 멀티코어 프로세서라고 부르기도 하지만[1] 현재에 이르러서는 한 CPU에 여러 개의 코어가 장착된 것으로 지칭하게 되면서 대신 멀티 프로세서라고 부르게 되었다.서버, 워크스테이션 등 많은 데이터를 처리하고 그 만큼 고성능이 필요한 컴퓨터에서 사용한다. 서버용 메인보드는 기본적으로 2개의 CPU 소켓을 탑재하고 있으며 4개나 달려있는 메인보드도 있다. 가정에서는 멀티코어 프로세서를 사용하지 멀티 프로세서를 사용하지 않는다.
멀티 프로세서가 구성되면 프로세서들 중 한개는 주 프로세서가 되어 입출력과 운영체제를 담당하고 나머지 프로세서들은 서브 프로세서가 되어 연산만을 수행한다. 멀티 프로세서를 위한 프로세스 스케줄링 알고리즘이 따로 존재한다. (SQMS, MQMS)
멀티 프로세서 시스템에서는 각 CPU들이 독립적으로 작동한다. 따라서 반드시 같은 모델의 CPU로만 구성할 필요가 없다.
2. 장점
- 높은 성능 - CPU가 2개 이상 창작되어 있으니 컴퓨터 성능이 더 높아진다. 예를 들어 32코어를 가진 CPU를 2개 장착한다면 총 코어 수는 64개가 되어 빠른 병렬 처리가 가능해진다. 그래서 서버, 데이터센터 등에서 수 많은 데이터를 병렬 처리하기 위해 멀티 프로세서로 구성하고 있다.
- 더 많은 RAM 장착 가능 - CPU의 메모리 컨트롤러는 최대 4소켓의 메모리 장착을 지원하며 최신 CPU라면 8소켓까지 장착할 수 있다. 여기서 CPU를 추가로 장착하면 사용할 수 있는 소켓도 늘어나서 더 많은 메모리를 장착할 수 있게 된다. 예시로 2개의 CPU 장착을 지원하는 메인보드에서 16개의 메모리 슬롯이 달려있다.
3. 단점
- 높은 전력 소모와 발열 - CPU는 발전할수록 전력 소모량이 늘어나고 그 만큼 발열도 늘어난다. 멀티 프로세서는 같은 CPU를 2개 이상 장착하므로 전력 소모와 방열도 n배로 늘어나게 된다. 높은 전력량 때문에 파워서플라이는 비싸고 좋은 등급이어야 하고 발열 때문에 수랭을 사용해야 한다. 물론 CPU 성능이 높다면 수랭조차 감당할 수 없고 서버 방 전체를 주기적으로 냉각시켜야 하며 이는 유지 비용이 비싸지는 결과로 이어진다.
- 프로그램의 프로세서 활용 문제 - 프로그램이 병렬 처리를 하지 않을 경우 아무리 프로세서가 많아도 한 프로세서만 사용하게 되어 나머지 프로세서는 놀고 있는 상황이 되므로 멀티 프로세서로 인한 성능 향상이 무의미해진다. 이는 한 CPU에 코어만 여러 개를 박은 멀티코어 프로세서에서도 발생할 수 있는 문제이다. 프로그램이 멀티코어를 제대로 활용하지 않는다면 사실상 싱글코어를 사용한 거랑 같다.
- NUMA 문제 - 처리해야 할 데이터와 CPU 간의 물리적인 거리 역시 속도에 적지 않게 영향을 준다.
[1]
2000년대 이전에는 한 CPU 안에 코어 하나만 있었기에 코어가 늘린다는 것은 곧 멀티 프로세서였다.