수퍼 컴퓨팅 관점에서 CPU / GPU로드를 백분율로 생각하지 말고 문제가 필요한 작업 수를 결정한 다음 시스템의 최고 성능과 비교하는 것이 좋습니다.
100 % CPU 사용률을 얻는다고해서 반드시 시스템에서 모든 성능을 얻는 것은 아닙니다. CPU는 종종 부서와 추가와 같이 여러 가지 다른 작업을 동시에 수행 할 수 있습니다. 디비전을 일찍 시작할 수 있으면 추가와 겹칠 수 있습니다. 데스크탑 CPU에는 이러한 오버랩의 이점을 위해 명령문을 재정렬하는 순서 가 잘못된 장치 가있을 가능성이 높습니다 . 또는 다음 프로그램이있는 경우 :
if (expr1)
expr2;
else
expr3;
재정렬 CPU는 세 가지 표현식 을 동시에 계산 한 다음 그 중 하나의 결과를 버립니다. 이것은 전체적으로 더 빠릅니다. 프로그램에 일부 차단기가 있고 순서를 바꿀 수없는 경우 CPU에서 더 적은 레인을 사용하고 있지만 여전히 100 %를 표시합니다.
그런 다음 벡터 작업 인 CPU에 SIMD 기능이 있습니다. GPGPU-light와 비슷합니다. 일반적으로 동시에 4 개 또는 8 개의 작업 만 수행하고 GPU는 32 또는 64를 사용합니다. 그래도 FLOPS를 크랭크하려면이를 사용해야합니다.
허위 공유와 같은 것은 동기화 비용이 많이들 수 있으며 일반적으로 Linux에서 커널로드로 표시됩니다. CPU가 완전히 사용되었지만 유용한 처리량이 많지 않습니다.
IBM Blue Gene / Q 머신에서 일부 프로그래밍을 수행했습니다. 계층 구조 수준이 많기 때문에 ( 구식 Blue Gene / L의 회로도 ) 효율적으로 프로그래밍하기가 어렵습니다. 성능을 얻으려면 전체 계층 구조를 SIMD 및 SMT (Intel은이 하이퍼 스레딩이라고 함)까지 사용해야합니다.
그리고 네트워크는 종종 당신을 제한합니다. 따라서 (벽시계) 시간이 네트워크를 통해 통신하는 대신 여러 CPU에서 동시에 계산하는 것이 더 빠릅니다. 이렇게하면 CPU에 더 많은 부하가 걸리고 프로그램이 더 빨리 실행됩니다. 그러나 실제 프로그램 처리량은 원래 숫자보다 좋지 않습니다.
믹스에 GPU를 추가하면 성능을 높이기 위해이 모든 것을 조정하는 것이 훨씬 어려워집니다. 이것이 몇 달 안에 Lattice QCD Master Thesis에서 시작하게 될 것 중 하나입니다.
NO-OP
로드가 100 %가 될 수 있습니다.