쿼드 코어 3GHz 프로세서가 12GHz 단일 코어만큼 빠르지 않은 주된 이유는 해당 프로세서에서 실행되는 작업, 즉 단일 스레드 또는 다중 스레드와 관련이 있기 때문입니다. Amdahl의 법칙 은 실행중인 작업 유형을 고려할 때 중요합니다.
본질적으로 선형이고 (매우 간단한 프로그램)과 같이 단계별로 정확하게 수행 해야하는 작업이있는 경우
10: a = a + 1
20: goto 10
그런 다음 작업은 이전 단계의 결과에 크게 의존 'a'
하며 각 사본이 'a'
다른 시간에 값을 가져 와서 다르게 쓰기 때문에 값을 손상시키지 않으면 서 여러 사본을 실행할 수 없습니다 . 이렇게하면 작업이 단일 스레드로 제한되므로 작업은 주어진 시간에 단일 코어에서만 실행될 수 있습니다. 여러 코어에서 실행하는 경우 동기화 손상이 발생합니다. 이는 듀얼 코어 시스템의 CPU 전력의 1/2 또는 쿼드 코어 시스템의 1/4로 제한합니다.
이제 다음과 같은 작업을 수행하십시오.
10: a = a + 1
20: b = b + 1
30: c = c + 1
40: d = d + 1
50: goto 10
이 라인은 모두 독립적이며 제 실행 동시에, 어떤 동기화 문제없이 코어 중 하나의 전체 전력의 효과적인 사용을 할 각각의 수와 같은 4 개 별도의 프로그램으로 분할 될 수있다, 이것은 어디 암달의 법칙 그것에 들어온다.
따라서 무차별 대입 계산을 수행하는 단일 스레드 응용 프로그램이있는 경우 단일 12GHz 프로세서가 손을 떼면 작업이 별도의 부분으로 분할되고 멀티 스레드가 될 수 있다면 4 개의 코어가 근접 할 수는 있지만 암달의 법칙과 동일한 성능.
멀티 CPU 시스템이 제공하는 가장 중요한 것은 응답 성입니다. 열심히 일하는 단일 코어 시스템에서는 한 작업에서 대부분의 시간을 사용할 수 있고 다른 작업은 더 큰 작업 사이에서 짧은 버스트로만 실행되므로 시스템이 느리거나 불안정 해 보입니다. . 멀티 코어 시스템에서 무거운 작업은 하나의 코어를 가져오고 다른 모든 작업은 다른 코어에서 재생하여 작업을 빠르고 효율적으로 수행합니다.
"6 코어 x 0.2GHz = 1.2Ghz"의 주장은 작업이 완벽하게 평행하고 독립적 인 경우를 제외하고는 모든 상황에서 쓰레기입니다. 많은 병렬 작업이 있지만 여전히 일부 형태의 동기화가 필요합니다. 핸드 브레이크 는 사용 가능한 모든 CPU를 사용하는 데 능숙한 비디오 트랜스 코더이지만 다른 스레드에 데이터를 채우고 수행 한 데이터를 수집하려면 핵심 프로세스가 필요합니다.
- 각 코어는 실제로 초당 x 계산을 수행하므로 총 계산 수는 x (코어)입니다.
각 코어는 워크로드가 적절한 병렬 처리를 가정 할 때 초당 x 계산을 수행 할 수 있으며 선형 프로그램에서는 1 코어 만 있으면됩니다.
- 클럭 속도는 프로세서가 1 초 동안 처리하는주기 수의 수입니다. 모든 코어가 동일한 속도로 실행되는 한 각 클럭주기의 속도는 코어 수에 관계없이 동일하게 유지됩니다 . 즉, Hz = (core1Hz + core2Hz + ...) / cores입니다.
4 x 3GHz = 12GHz라고 생각하면 수학이 작동하지만 사과를 오렌지와 비교하고 합계가 맞지 않습니다 .GHz는 모든 상황에 대해 단순히 함께 추가 할 수는 없습니다. 4 x 3GHz = 4 x 3GHz로 변경하겠습니다.