멀티 코어 CPU 에너지 요구 사항 및로드 밸런싱


10

멀티 코어 CPU 시스템의로드 밸런싱에 관심이 있습니다. 여러 개의 코어와 함께 1 개의 CPU를 사용하는 경우 여러 코어의로드 균형을 조정하거나 단일 코어를 채우고 다른 코어를 유휴 상태로 두는 것이 에너지 효율이 더 높습니다.
기본 가정은 두 경우 모두 수행되는 작업량이 동시에 정확히 동일하다는 것입니다. 따라서 동일한 CPU에서 각각 25 %의로드로 4 개의 코어를 사용하거나 100 %의로드로 1 개의 코어를 사용하는 것이 더 효율적입니다.
100 %로드의 1 코어가 더 효율적이어야한다고 생각하지만 잘못되었을 수 있으므로이 문제에 대한 심각한 답변을 찾고있었습니다 (추측 없음).


+1 정말 흥미로운 질문입니다! 다음은 mshardware.com/reviews/truth-pc-power-consumption,1707.html tomshardware.com/reviews/intel-cpu-power-consumption,1750.html에 대한 링크 입니다. 저는 C2D T8100을 보유하고 있으며 요즘에는 어떤 유형의 부하가 더 많은 열을 발생하는지 확인하기 위해 몇 가지 테스트를 수행 할 것입니다.
AndrejaKo

25 %의 4 코어는 확실히 100 %에서 1 코어보다 열을 더 잘 분산시킵니다.
Brian Knoblauch

사용 사례에서 작업량이 일정하면 동일한 코어에서 모든 부하를 줄이면 성능이 저하되어 시간이 많이 걸리고 스 래싱이 효과적으로 발생합니다. 동일한 작업을 완료하는 데 시간이 더 오래 걸리면 즉각적인 에너지 절약 효과를 잃을 수 있습니다. (+1, 생각을 자극하는 질문)
nik

@Brian은 더 많은 코어를 사용하면 열이 확산된다는 데 동의했지만 전체적으로 같은 양의 열을 생성합니까?
Kevin Panko

AMD는 더 높은 클럭 속도로 활성 코어를 실행하는 allowin, 사용하지 않는 코어의 전원을 끌 수있을 것입니다 CPU를 발표했다
b0fh

답변:


6

IMO이 질문은 일반적인 경우에 대답 할 수 없습니다.

내 책상에는 새로운 코어 i7-980x 6 코어 TurboBoost 지원 CPU 중 하나가 있습니다. 이 머신에 단일 코어를로드하면 해당 코어의 클럭 속도가 향상되어 CPU의 전력 소비가 증가하므로 큰 차이가 발생합니다. 이 CPU와 다른 최신 CPU는 비활성 코어의 전원을 부분적으로 차단하여 전력 절감 효과를 높일 수 있습니다. 구형 CPU 모델에서는 그렇지 않습니다.

하나의 코어로 수행해야하는 작업은 여러 코어로 수행하는 작업과 반드시 ​​다를 것입니다. 여러 코어에로드를 분산 시킬 수 있는 경우 고가의 컨텍스트 스위치를 수행하는 단일 코어에 많은 추가 시간이 소요되고 성능이 저하 될 수 있습니다.

어쨌든 문제에는 너무 많은 변수가있어 실제로 대답 할 수 없습니다. 여러 가지 유형의 부하에 대해 계속 진행할 수 있으며, 답변을 얻기 위해 벤치마킹하려고 시도하는 사람은 다른 유스 케이스에는 적용되지 않는 사과 대 오렌지 비교를 (아마도 실수로) 수행하게됩니다.

아, 그리고 한가지 더. 대부분의 사람들은 아마 힘의 관점에서 효율성을 인용 할 것입니다 . 당신은 그 함정에 빠지고 싶지 않습니다. 로드를 처리하는 시간은로드 균형 조정 방법에 따라 달라 지므로 시간이 지남에 따라 결과를 통합 하여 작업을 완료하는 데 사용 된 순 에너지 양을 찾아야 신뢰할 수있는 결과를 얻을 수 있습니다.


LOL 어떻게 알 수 있습니까? 호키 엔지니어링, 베이비!
David Markle

하나를 알아야합니다. Go Mizzou
hotei

아 잠깐만 내가 틀렸어. 벤치 마크를 실행하고 일반적인 경우에 대한 답변을 제공 할 수있는 한 사람이 있습니다 : gizmodo.com/5598885/…
David Markle

4

오늘 컴퓨터 (Intel C2D T8100)와 lunatics installer 0.36의 최적화 된 SETI @ Home 애플리케이션을 사용하여 몇 가지 테스트를 수행했습니다 . 전력 소비량을 계산하기 위해 M $ Joulmeter 를 사용했습니다 . 소비 트리 시간을 측정했습니다. 먼저 BOINC가 100 % 코어와 100 % CPU 시간을 사용하고 1 시간 동안 실행되도록했습니다. 프로세서는 20W를 소비했으며 작업 관리자의 CPU 시간 그래프는 100 %로 평평했습니다. 내 컴퓨터의 평균 전력 소비는 45.05W이고 상승했으며 테스트 전력 소비를 중단 한 순간은 46.18W였습니다.

두 번째 테스트에서는 BOINC가 사용 가능한 코어의 50 %와 CPU 시간의 100 %를 차지하고 1 시간 동안 실행되도록 설정했습니다. CPU 전력 소비는 12W와 13W 사이에서 다양합니다. 평균 소비량은 42.72W로 증가했습니다. 테스트를 중단 한 순간 소비는 44W였습니다. 대상 코어의 CPU 시간 그래프를 플랫 라인으로 만들기 위해 프로그램의 선호도를 하나의 코어로 설정하고 우선 순위를 높게 설정했습니다. 다른 코어에 대한 그래프는 일반적인 CPU 시간 사용보다 다소 높았습니다.

세 번째 테스트에서는 BOINC가 사용 가능한 코어 100 %와 CPU 시간의 50 %를 사용하도록 설정했습니다. 전력 소비는 5W와 17W 사이에서 크게 증가했습니다. 1 시간의 테스트 후 평균 전력 소비는 39.96W로 떨어졌습니다. CPU 시간 그래프는 다음과 같이 변했습니다 /\/\/\/\/\/\/\/\/\/\/\/\/\. BOINC에서 사용하는 시간 단위의 크기 때문에 스파이크가 예상되었습니다.

따라서 전체로드에서 하나의 코어를 실행하는 것보다 절반로드로 실행되는 두 개의 코어를 사용하는 것이 더 효율적이라고 생각합니다.

그리고 네, 적절한 연구를 위해서는 더 많은 샘플이 필요하다는 것을 알고 있습니다. 그러나 당시에는 적절한 통계를 수행 할 충분한 컴퓨터 나 시간이 없습니다.


1
이제 다른 운영 체제의 경우 Joulemeter와 동등한 기능을 찾는 것이 좋을 것입니다. 그러면 내가 얻은 장비 중 일부를 테스트 할 수 있습니다.
private_meta

여기 GNU / 리눅스 노트북을위한 것입니다. thinkwiki.org/wiki/How_to_measure_power_consumption
AndrejaKo

www.lesswatts.org/ 다른 하나를 여기에 또 다른 흥미있는 링크입니다 susegeek.com/general/... 하고 다른 publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/...는 분명히 사람들이 ACPI 판독을 생각하지 않고 확신은 외부 미터가 필요하므로 외부 미터 사용 방법에 대해 논의하는 링크는 거의 없습니다. 다른 운영 체제로는 도움을 줄 수있을만큼 1337 개가 아닙니다.
AndrejaKo

감사. 외부 미터의 문제점은 처리 전력뿐만 아니라 모든 전력 소비를 측정한다는 것입니다. 전체 전력 소비도 중요하지만 (예 : 알고리즘은 하드 드라이브를 광범위하게 사용합니다). ACPI 판독 값을 신뢰할 수없는 것 같으면 Windows 컴퓨터의 외부 판독 값을 사용하여 비교할 수 있어야합니다.-/
private_meta

그러나 여전히 ACPI 판독 값이 판독 값이없는 것보다 낫습니다. 또한 CPU에 가장 큰 영향을 미치는 테스트를 사용하여 기본 전력 소비량을 설정하고 부하에 따라 얼마나 많이 증가하는지 확인할 수 있습니다. 이런 식으로 우리는 대부분의 소비 변화가 CPU로드에 의한 것임을 알 수 있습니다. 나중에 전압계와 전류계로 몇 가지 테스트를 더 할 수 있습니다. ACPI 측정과 실제 계측기 측정이 어떻게 비교되는지 보는 것은 정말 흥미로울 것입니다. 그러한 비교는 너무나 일반화 할 수 없습니다.
AndrejaKo

0

질문에 대한 답은 두 가지입니다. 벡터화가 가능한 병렬 코드를 실행하는 경우 여러 코어에 대한로드 밸런싱이 항상 더 효율적입니다. 코어는 한계에 도달 한 단일 코어보다 적은 열을 방출하는 낮은 부하에서 작동합니다. 반면에 코드를 병렬화 할 수없는 경우 코드 전체의 종속성으로 인해 발생하는 캐시 누락 수로 인해 여러 코어에서 코드를 실행하면 효율성이 떨어집니다. 그래도 열이 적게 발생하지만 단일 코어에서 실행하는 것보다 작업을 완료하는 데 시간이 더 오래 걸립니다.


1
그러나 병렬화 할 수없는 코드가있는 경우 둘 이상의 코어에서 어떻게 실행됩니까?
AndrejaKo

당신의 의견으로는, 25 %로 펄싱 된 4 개의 코어는 100 %로 눌려진 1 개의 코어보다 더 적은 열을 발생 (및 더 많은 에너지 손실을 생성)합니다.
private_meta

@AndrejaKo 여러 프로세스 나 스레드가있는 경우 여러 프로세스 나 스레드가 코어에 쉽게 퍼질 수 있습니다.
방출

0

귀하의 질문에 알 수없는 내용이 너무 많습니다. 시간 효율성 또는 에너지 효율성에 대해 질문하고 있습니까? 비 병렬 코드 또는 병렬 코드? 단일 작업 또는 평균 데스크탑 멀티 태스킹? 컴퓨터에 대해 월 $ 1000 이상의 에너지 요금이 있다면 걱정할 가치가 있습니다. 그렇지 않으면 문제를 해결할 가치가있을만큼 충분히 절약 할 수 없습니다. 이야기하는 것이 재미 있습니다. 그러나 심각한 문제가 발생하면 가장 좋은 대답은 몇 가지 다른 것을 시도하고 작동하는 것을보십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.