저는 미분 방정식으로 작동하는 프로그램을 병렬 처리하기위한 간단한 OpenMP 코드를 작성하라는 프로젝트를 진행하고 있습니다. 우리는 또한 컴파일러 최적화가 있거나없는 코드의 성능을 테스트하도록 요청 받았다. 나는 옵션컴파일러 최적화가 있거나없는 병렬 OpenMP 코드의 성능 (Sun CC)
-xopenmp -fast
을 사용 optmized 버전, 그래서 일 CC 컴파일러 작업을 훨씬이었다에 비의 컴파일러 최적화와 실행 시간을 놀라 울 정도로
-xopenmp=noopt
하지
을 최적화하고있어 다른 경우보다 낮습니다. 놀랍게도 비 최적화 버전에서 스케일링 성능이 훨씬 향상되었습니다. 여기서 성능은 속도 향상 계수, 즉 M 프로세서에서 실행 된 프로그램의 실행 시간 비율이며 프로그램 실행 시간은 1 프로세서에서 실행되었습니다.최적화 된 버전이 메모리 바인딩 된 반면 최적화되지 않은 버전은 CPU 바인딩 된 사실에 의존 할 수 있음을 암시했습니다. "boundness"가 내 코드의 확장 기능에 어떻게 영향을 미칠지 잘 모르겠습니다. 어떤 제안이 있으십니까?