Tru64와 Linux는 프로그래밍 환경이 어떤 차이가 있습니까?

simpid의 이미지

오랫동안 Windows와 VC로만 개발을 하다가 얼마전에 Linux환경에서 gcc로 이곳에서 물어물어 개발한 프로그램이 있습니다.

이번에 다시 Linux용으로 개발된 프로그램을 Tru64용으로 포팅해야 합니다.

Tru64에 대한 자료가 전혀 없기 때문에 소스를 들고 Tru64가 설치되어 있는 고객사에 방문해서 포팅해줘야 하기때문에 Linux와 Tru64가 어떤 차이가 있는지 알고 싶습니다.

Tru64에서의
- c 컴파일러
- threading
- socket

등등 포팅하는데 주의해야할것등 경험 있으신분 답변 부탁드립니다.

김성진의 이미지

뭐..그렇게 큰 차이는 없겠지만,
컴파일러와 해당 옵션이 조금 다를 것입니다.

가장 큰 차이점은 TRU64는 64비트 OS이기 때문에
primitive 데이터 타입에 대해 신중을 기하셔야 합니다.

물론, 데이터 타입에 대한 추상화를 하셨다면 문제가 없겠지만,
제가 듣기에는 직접 primitive 데이터 타입을 쓰신 것 같네요.

long 타입은 linux의 경우 32비트이구요,
TRU64는 64비트입니다.

또한, thread 를 사용하신 것이라면, 나쁜 소식도 전해드려야겠습니다.

모두 POSIX를 따르기에 포팅은 크게 어려움은 없겠지만,
CPU갯수가 2개 이상의 환경에서는 1개일 때 보다
프로그램의 System Scalability가 확연하게 떨어집니다.
(약2배 이상...-_-; )

성능향상에 신경을 쓰셔야 할 지도 모르겠네요.

잘 되시길 기원합니다.

김성진 드림

고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.

shkwon81의 이미지

Quote:
모두 POSIX를 따르기에 포팅은 크게 어려움은 없겠지만,
CPU갯수가 2개 이상의 환경에서는 1개일 때 보다
프로그램의 System Scalability가 확연하게 떨어집니다.
(약2배 이상...-_-; )

이게 어떤 의미인지 잘 모르겠습니다.
TRU64의 쓰레드 구현은 Linux 보다 훨씬 성능이 좋은 것으로 알고
있습니다만..

어떤 면에서 큰 문제인가요?
혹시 kernel thread의 개수를 너무 작게 설정하신 경우 아닌가요?

김성진의 이미지

아..예..

제가 말씀드린 것은 TRU64의 쓰레드 구현자체에 대한 문제라기보다

해당 시스템 자체의 문제를 말씀드린 겁니다.

윗글에서 자세하게 언급하지는 않았지만,

1 CPU가 장착된 TRU64는 성능이 다른 플랫폼에 비해

월등히 빠릅니다. 이건 저도 체감을 하고 있는 부분이구요.

그런데, 2개 이상의 CPU 환경에서는 쓰레드 응용 프로그램의

scalability가 대단히 좋지 않았습니다.

물론 코딩에 문제가 있다고 볼 수도 있지만,

같은 응용프로그램이 SUN이나 AIX에서는 좋은 성능을

나타내거든요.

제가 추측하기로는 CPU간의 메모리 전송 아키텍쳐에

문제가 있는게 아닌가 생각됩니다.

cache coherency를 보장하기 위해서 다른 플랫폼에 비해

비효율적인 매커니즘을 이용하는게 아닌가 하는

의구심이 들어서 그렇습니다.

간단하게 2개의 쓰레드가 인접한 메모리를 접근하는 프로그램을

작성해서 돌려보면 다른 플랫폼과의 성능차이를

확실하게 파악할 수 있을 것이라고 생각됩니다.

김성진 드림

고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.