2008년 05월 12일
[MSVC++] 인텔 컴파일러의 성능 비교
급하신 분들을 위해 결과부터 말하자면, 인텔 컴파일러 킹왕짱이다.
일단, 비교 대상은 세가지다.
1. msvc++ 9.0에 내장되어 있는 컴파일러, 단일 스레드
2. 인텔 컴파일러, 단일 스레드
3. 인텔 컴파일러, 다중 스레드
성능 비교의 대상은, 아무래도 cpu자체의 연산 능력에 dependency가 큰
수치 해석이다.
Monte Carlo Method를 이용한 Small angle neutron scattering simulation을 이용했다.
간단한 사실만 말하자면, 총 돌아야 하는 루프의 갯수는 128개.
test environment는 intel Core 2 Duo T5600 1.83GHz, ddr2 2GB ram, MS windows XP SP3이다.
코어가 2개 있으니 2개 이상의 쓰레드로 분할하는 것은 무의미할 것으로 생각하고 스레드의 갯수를 2개로 정했다.
* 결과
1. 19.656 sec
2. 13.562 sec
3. 6.468 sec
1에서 3으로 갈 시 속도가 약 3배정도 빨라진 것을 확인할 수 있었다.
오늘의 교훈 1. 인텔. 좀 하는구나.
2. 성급하게 결론내리지 말자.
3. 멀티코어 cpu 킹왕짱이다.
마지막 덧글 : 멀티스레드 코드 자체는 어느 블로그에서 본 코드를 그대로 도용해서 썼는데,
코어를 전부 쓰기 위해서 인터넷 익스플로러도 끄고 세번째 테스트를 하고 난 뒤에 보니 어디에서 참조했는지 모르겠다.
# by | 2008/05/12 00:46 | 트랙백 | 덧글(2)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
좀 멍청한 질문같지만 인텔 컴파일러로 컴파일한게 amd cpu에서도 돌아가겠죠?
인텔홈피가보면 인텔컴파일러 데모만 있던거 같은데 어떤 기능제약이 있는지 잘 모르겠어요.
msvc 9.0 기본 컴파일러로는 openmp사용 못하나요?
질문이 좀 많지만 그래도 답변 부탁드립니다. 꾸벅
1. 네. 돌아갑니다만,
인텔 cpu에서 빠르게 돌아가던 어플리케이션이 amd cpu에서 빠르게 돌아갈지는 의문입니다.
intel optimization이니까요^^
2. 제가 받아서 사용했던 trial version은 별다른 기능 제약이 없더군요.
3. http://jacking75.cafe24.com/MSDN_MagaZine/2005-10-3.htm
지원된다네요.