문제

대규모 프로젝트 (예 : GCC 또는 Linux 커널)를 최대한 빨리 컴파일하려고합니다. 하이퍼 스레딩 기능 (예 : Intel Core i7)이있는 CPU가 하이퍼 스레딩 활성화 또는 비활성화로 컴파일러를 더 빨리 실행합니까? 이것을 테스트하는 게시 된 벤치 마크가 있습니까?

하이퍼 스레딩에 대한 나의 이해는 각 코어가 두 가지 (또는 더 많은 프로세스)에서 지침을 선택할 수 있다는 것입니다. 이것은 기능 단위가 유휴 상태 일 가능성이 적기 때문에 일반적으로 코어를 더 효율적으로 만듭니다. 그러나 캐시와 같은 동일한 핵심 공유 리소스에서 실행되는 프로세스가 서로 방해 할 수 있기 때문에 성능 페널티가 가능합니다. 성능이 실제로 증가하는지 여부는 워크로드에 따라 다릅니다.

컴파일러 워크로드의 경우 성능이 증가합니까? 그렇다면 얼마나?

도움이 되었습니까?

해결책

Ubuntu 8.04 x86에서 Coreutils-8.4 컴파일

HT 활성화 된 인텔 원자 1.6GHz :

~/coreutils-8.4$ make clean > /dev/null
~/coreutils-8.4$ time make > /dev/null

real    2m33.375s
user    2m22.873s
sys     0m10.541s
~/coreutils-8.4$ make clean > /dev/null
~/coreutils-8.4$ time make -j2 > /dev/null

real    1m54.707s
user    3m26.121s
sys     0m13.821s
~/coreutils-8.4$ make clean > /dev/null
~/coreutils-8.4$ time make > /dev/null

real    2m33.372s
user    2m22.753s
sys     0m10.657s
~/coreutils-8.4$ make clean > /dev/null
~/coreutils-8.4$ time make -j2 > /dev/null

real    1m54.851s
user    3m26.145s
sys     0m13.685s
~/coreutils-8.4$

따라서 하이퍼 스레딩은 런타임을 75%로 줄입니다. 33% 더 많은 처리 능력. (모든 것이 메모리 캐시에 있는지 확인하기 위해 두 번 실행했습니다.)

그리고 여기에 그것을 보여주는 제어 실험이 있습니다 make -j2 단독 Ubuntu 8.04 x86에서 Coreutils-8.4를 컴파일하는 속도를 향상시키지 않습니다.

단일 코어 코어 2 쿼드 2.5GHz VM (HT 없음) :

~/coreutils-8.4$ make clean > /dev/null
~/coreutils-8.4$ time make > /dev/null

real    0m44.453s
user    0m38.870s
sys     0m5.500s
~/coreutils-8.4$ make clean > /dev/null
~/coreutils-8.4$ time make -j2 > /dev/null

real    0m45.131s
user    0m40.450s
sys     0m4.580s
~/coreutils-8.4$ make clean > /dev/null
~/coreutils-8.4$ time make > /dev/null

real    0m44.621s
user    0m39.090s
sys     0m5.340s
~/coreutils-8.4$ make clean > /dev/null
~/coreutils-8.4$ time make -j2 > /dev/null

real    0m45.165s
user    0m40.390s
sys     0m4.610s
~/coreutils-8.4$

다른 팁

컴파일러가 멀티 스레드로 작성되었는지 여부에 따라 다릅니다. 만약 그렇다면, 확실히 하이퍼 스레딩은 약간의 속도를 약간 상승시킵니다. 그 이후로 OS는 컴파일러 스레드의 다른 부분을 다른 코어로 예약 할 수 있습니다. Ken은 컴파일이 일반적으로 처리 집중보다 I/O에 더 많은 I/O 경계라는 점에 동의하므로 빠른 하드 드라이브를 갖는 것은 100의 코어를 가진 빠른 프로세서보다 필요합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top