다중 코어 = 더 나은 멀티태스킹?

다중 코어 = 더 나은 멀티태스킹?

구체적으로 i5-3570k나 FX-8350을 보고 있는데, 다중 코어가 어떻게 일반적인 멀티태스킹을 향상시킬 수 있는지에 대한 보다 일반적인 구체적인 질문을 생각하게 되었습니다.

많은 리뷰, 벤치마크 등을 읽어 보면 기본적으로 모두 같은 말을 합니다. 해당 애플리케이션이 4개 이상의 코어를 활용하도록 특별히 코딩되지 않는 한 대부분의 애플리케이션에서 더 빠른 클럭의 4코어 I5가 더 느린 클럭의 8코어 FX를 능가합니다. 게임은 특히 i5에서 더 잘 실행됩니다.

그러나 책을 읽으면서 거의 모든 벤치마크가 공백 상태에서 수행된다는 것을 알았습니다. 즉, 해당 벤치마크나 소프트웨어만 테스트되는 것입니다. 그러나 이는 특정 소프트웨어를 테스트하는 데는 좋지만 실제 시나리오는 아닙니다.

예를 들어, 하루 중 언제라도 여러 탭, Photoshop 또는 Visual Studio, 여러 백그라운드 프로그램(바이러스 백신, Steam, Keepass 등)이 포함된 여러 브라우저를 열어 둘 수 있습니다. 그리고 그것은 밝은 날입니다.

그래서 제 질문은 이렇습니다. 이론적으로 더 빠른 4코어가 개별 소프트웨어를 더 빠르게 실행하는 반면, 8코어 프로세서가 반드시 8코어에 최적화되지는 않더라도 여러 소프트웨어를 동시에 실행하는 데 8코어 프로세서가 더 나을 수는 없을까요?

답변1

리눅스 CPU 로드

한 가지 유용한 측정 방법은 Linux 개념입니다.CPU 로드. 기본적으로 각 CPU 코어는 1.00의 사용 가능한 로드 단위이고 코어의 100%에서 실행되는 각 작업은 1.00의 로드 단위가 사용된다고 생각하면 됩니다. 처리 집약적인 서버의 경우 이상적인 로드는 아마도 정확히 CPU 코어 수(4개의 CPU 코어에 대해 4.00 로드)일 것입니다.

바쁜 루프(예: "while(true)")는 하나의 CPU(1.00 로드 단위)를 100% 차지할 수 있습니다. 단일 스레드 벤치마크도 1.00으로 최고치를 기록했습니다. 멀티 코어 최적화 벤치마크는 FX-8350에서 사용 가능한 최대 8.00까지 더 많은 코어를 차지할 수 있습니다.

그러나 대부분의 앱(Chrome + Firefox 오픈, Photoshop, Visual Studio)은 백그라운드에서 실행될 때 CPU를 그렇게 많이 소비하지 않습니다. 사실, 여러 코어에서 실행될 수 있지만 사용 가능한 시간의 10%(0.10 로드 단위)만 사용하는 경우 해당 4개 앱의 추가 로드는 최대 0.40에 불과하며 CPU 코어가 두 개 이상 있어도 이점이 거의 없습니다. 마찬가지로 디스크 또는 네트워크 액세스를 차단하는 응용 프로그램은 기다리는 동안 CPU 시간을 사용하지 않습니다.

평균 부하 > 4.00

애플리케이션 로드가 4.00에서 8.00 사이인 경우 FX-8350의 성능이 두드러질 수 있습니다. 4코어 CPU에서 5.00 로드는 CPU 리소스에 대한 많은 경합으로 이어질 수 있으며, 작업 간 작업 전환으로 인해 관련된 오버헤드가 가중됩니다.

평균 부하 < 4.00

귀하의 질문은 수학이 그다지 명확하지 않은 시기에 관한 것 같습니다. 즉, 4.00 이하의 작업 부하에서 8코어가 더 나은지 여부입니다. 상당히 일정한 서버 유형의 워크로드의 경우 일부 벤치마크를 실행하여 실제로 이점이 있는지 확인할 수 있습니다. 끊임없이 변화하는 일상적인 컴퓨팅 워크로드의 경우 확실한 승자는 없습니다.

답변2

이는 애플리케이션, OS 및 작업 실행 방법에 따라 크게 달라집니다.

애플리케이션이 단일 스레드로 설계된 경우 추가 코어가 성능에 도움이 되지 않습니다. 그러나 운영 체제가 이러한 방식으로 작업을 배포할 만큼 똑똑하다면 다른 코어를 사용하여 추가 응용 프로그램을 실행할 수 있습니다. 따라서 추가 코어는 특히 동시에 실행되는 여러 애플리케이션의 경우 작은 추가 이점을 제공할 수 있습니다.

추가 코어는 더 많은 I/O 기능을 제공하지 않습니다. 따라서 애플리케이션이 대부분 I/O 바인딩인 경우 추가 코어로 인한 성능 향상은 크지 않을 수 있습니다.

관련 정보