Tru64와 Linux는 프로그래밍 환경이 어떤 차이가 있습니까?
글쓴이: simpid / 작성시간: 토, 2003/09/06 - 10:02오전
오랫동안 Windows와 VC로만 개발을 하다가 얼마전에 Linux환경에서 gcc로 이곳에서 물어물어 개발한 프로그램이 있습니다.
이번에 다시 Linux용으로 개발된 프로그램을 Tru64용으로 포팅해야 합니다.
Tru64에 대한 자료가 전혀 없기 때문에 소스를 들고 Tru64가 설치되어 있는 고객사에 방문해서 포팅해줘야 하기때문에 Linux와 Tru64가 어떤 차이가 있는지 알고 싶습니다.
Tru64에서의
- c 컴파일러
- threading
- socket
등등 포팅하는데 주의해야할것등 경험 있으신분 답변 부탁드립니다.
Forums:
뭐..그렇게 큰 차이는 없겠지만,컴파일러와 해당 옵션이 조금 다를 것
뭐..그렇게 큰 차이는 없겠지만,
컴파일러와 해당 옵션이 조금 다를 것입니다.
가장 큰 차이점은 TRU64는 64비트 OS이기 때문에
primitive 데이터 타입에 대해 신중을 기하셔야 합니다.
물론, 데이터 타입에 대한 추상화를 하셨다면 문제가 없겠지만,
제가 듣기에는 직접 primitive 데이터 타입을 쓰신 것 같네요.
long 타입은 linux의 경우 32비트이구요,
TRU64는 64비트입니다.
또한, thread 를 사용하신 것이라면, 나쁜 소식도 전해드려야겠습니다.
모두 POSIX를 따르기에 포팅은 크게 어려움은 없겠지만,
CPU갯수가 2개 이상의 환경에서는 1개일 때 보다
프로그램의 System Scalability가 확연하게 떨어집니다.
(약2배 이상...-_-; )
성능향상에 신경을 쓰셔야 할 지도 모르겠네요.
잘 되시길 기원합니다.
김성진 드림
고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.
[quote]모두 POSIX를 따르기에 포팅은 크게 어려움은 없겠지만,
이게 어떤 의미인지 잘 모르겠습니다.
TRU64의 쓰레드 구현은 Linux 보다 훨씬 성능이 좋은 것으로 알고
있습니다만..
어떤 면에서 큰 문제인가요?
혹시 kernel thread의 개수를 너무 작게 설정하신 경우 아닌가요?
아..예..제가 말씀드린 것은 TRU64의 쓰레드 구현자체에 대한
아..예..
제가 말씀드린 것은 TRU64의 쓰레드 구현자체에 대한 문제라기보다
해당 시스템 자체의 문제를 말씀드린 겁니다.
윗글에서 자세하게 언급하지는 않았지만,
1 CPU가 장착된 TRU64는 성능이 다른 플랫폼에 비해
월등히 빠릅니다. 이건 저도 체감을 하고 있는 부분이구요.
그런데, 2개 이상의 CPU 환경에서는 쓰레드 응용 프로그램의
scalability가 대단히 좋지 않았습니다.
물론 코딩에 문제가 있다고 볼 수도 있지만,
같은 응용프로그램이 SUN이나 AIX에서는 좋은 성능을
나타내거든요.
제가 추측하기로는 CPU간의 메모리 전송 아키텍쳐에
문제가 있는게 아닌가 생각됩니다.
cache coherency를 보장하기 위해서 다른 플랫폼에 비해
비효율적인 매커니즘을 이용하는게 아닌가 하는
의구심이 들어서 그렇습니다.
간단하게 2개의 쓰레드가 인접한 메모리를 접근하는 프로그램을
작성해서 돌려보면 다른 플랫폼과의 성능차이를
확실하게 파악할 수 있을 것이라고 생각됩니다.
김성진 드림
고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.
댓글 달기