오픈솔라리스에 들어있는 기본 gcc 컴파일러는 버젼이 상당히 낮습니다. 3.4.x(?)
따라서, 그럭저럭 사용하는데는 큰 문제 없습니다만,
컴파일러 저버젼 사용에 따른 최적화 부족 현상과 버그 현상이 발생할 수 있는데
이는 썬의 컴파일러를 사용하면 대부분 발생하지 않는 문제입니다.
따라서, 솔라리스에서는 썬의 컴파일러(스튜디오)로 모든 애플리케이션을
재 컴파일하는 것이 최고의 선택이라고 할 수 있습니다.
그런데, 간혹 gcc 용으로 제작된 환경에서는 gcc 옵션으로 컴파일하게 되어 있어
빌드시 상당한 오류를 접하게 됩니다. 이때 아래에 나오는 옵션으로 치환해서
사용할 수 있습니다.
Translating gcc/g++/gfortran Options to Sun Studio Compiler Options
아울러, 필요 불가결하게 gcc를 사용해야 한다면, 최신의 gcc를 sun 컴파일러로 최적화로 컴파일해서
사용하는 것이 바람직합니다.
한편,컴파일러 옵션 차이가 별것 아니겠거니 생각한다면 커다란 오산입니다.
특히, 병렬 처리를 하는 경우에는 이러한 차이를 결코 무시하면 안됩니다. 병렬 처리에는 매우 많은
요소들이 결합되는데, 각 요소별로 최적화 수준에 따른 누적된 지연시간이 만만치 않기 때문입니다.
여러개의 CPU를 가진 경우에는 OpenMP를 적절하게 사용하고, 멀티 CPU 노드를 여러개 운영하는
환경에서는 MPI stack 및 호출 애플리케이션을 최적화해서 적용하도록 해야 합니다.
아래 페이지 참고 :
http://www.coyotegulch.com/products/acovea/
http://developers.sun.com/solaris/articles/options.html
http://opensolaris.org/os/project/gccfss-on/bestoptions/
따라서, 그럭저럭 사용하는데는 큰 문제 없습니다만,
컴파일러 저버젼 사용에 따른 최적화 부족 현상과 버그 현상이 발생할 수 있는데
이는 썬의 컴파일러를 사용하면 대부분 발생하지 않는 문제입니다.
따라서, 솔라리스에서는 썬의 컴파일러(스튜디오)로 모든 애플리케이션을
재 컴파일하는 것이 최고의 선택이라고 할 수 있습니다.
그런데, 간혹 gcc 용으로 제작된 환경에서는 gcc 옵션으로 컴파일하게 되어 있어
빌드시 상당한 오류를 접하게 됩니다. 이때 아래에 나오는 옵션으로 치환해서
사용할 수 있습니다.
Translating gcc/g++/gfortran Options to Sun Studio Compiler Options
아울러, 필요 불가결하게 gcc를 사용해야 한다면, 최신의 gcc를 sun 컴파일러로 최적화로 컴파일해서
사용하는 것이 바람직합니다.
한편,컴파일러 옵션 차이가 별것 아니겠거니 생각한다면 커다란 오산입니다.
특히, 병렬 처리를 하는 경우에는 이러한 차이를 결코 무시하면 안됩니다. 병렬 처리에는 매우 많은
요소들이 결합되는데, 각 요소별로 최적화 수준에 따른 누적된 지연시간이 만만치 않기 때문입니다.
여러개의 CPU를 가진 경우에는 OpenMP를 적절하게 사용하고, 멀티 CPU 노드를 여러개 운영하는
환경에서는 MPI stack 및 호출 애플리케이션을 최적화해서 적용하도록 해야 합니다.
아래 페이지 참고 :
http://www.coyotegulch.com/products/acovea/
http://developers.sun.com/solaris/articles/options.html
http://opensolaris.org/os/project/gccfss-on/bestoptions/
댓글 없음:
댓글 쓰기