이것은 매우 흥미로운 질문이므로 장면을 설정하겠습니다. 저는 The National Museum of Computing에서 일하고 있으며 1992 년부터 Cray Y-MP EL 슈퍼 컴퓨터를 실행하는 데 성공했습니다. 얼마나 빨리 작동하는지보고 싶습니다!
이를 수행하는 가장 좋은 방법은 소수를 계산하는 데 걸리는 시간을 보여주는 간단한 C 프로그램을 작성한 다음 최신 데스크톱 PC에서 프로그램을 실행하고 결과를 비교하는 것입니다.
우리는 소수를 계산하기 위해이 코드를 빨리 생각해 냈습니다.
#include <stdio.h>
#include <time.h>
void main() {
clock_t start, end;
double runTime;
start = clock();
int i, num = 1, primes = 0;
while (num <= 1000) {
i = 2;
while (i <= num) {
if(num % i == 0)
break;
i++;
}
if (i == num)
primes++;
system("clear");
printf("%d prime numbers calculated\n",primes);
num++;
}
end = clock();
runTime = (end - start) / (double) CLOCKS_PER_SEC;
printf("This machine calculated all %d prime numbers under 1000 in %g seconds\n", primes, runTime);
}
Ubuntu (The Cray는 UNICOS를 실행)를 실행하는 듀얼 코어 랩톱에서 완벽하게 작동하여 100 % CPU 사용량을 얻고 약 10 분 정도 소요되었습니다. 집에 돌아 왔을 때 저는 헥스 코어 최신 게임용 PC에서 사용해보기로 결정했고, 여기에서 첫 번째 호를 얻었습니다.
처음에는 Windows에서 실행되도록 코드를 수정했는데, 게임용 PC가 사용하는 것이었기 때문에 프로세스가 CPU 성능의 약 15 % 만 얻는다는 사실에 슬펐습니다. Windows가 Windows 여야한다고 생각했기 때문에 Ubuntu의 Live CD로 부팅하여 Ubuntu가 이전에 랩톱에서했던 것처럼 프로세스가 최대한의 잠재력을 발휘할 수 있도록 할 것이라고 생각했습니다.
그러나 나는 단지 5 % 사용을 얻었습니다! 제 질문은 Windows 7 또는 라이브 Linux에서 100 % CPU 사용률로 내 게임 머신에서 실행되도록 프로그램을 조정하는 방법입니다. 훌륭하지만 필요하지 않은 또 다른 것은 최종 제품이 Windows 시스템에서 쉽게 배포되고 실행될 수있는 하나의 .exe 일 수있는 경우입니다.
감사합니다!
추신 물론이 프로그램은 Crays 8 전문가 프로세서에서 작동하지 않았습니다. 이것은 완전히 다른 문제입니다. 90 년대 Cray 슈퍼 컴퓨터에서 작동하도록 코드를 최적화하는 방법에 대해 알고 계신다면 한마디 부탁드립니다!