리눅스에서 하이퍼쓰레딩을 컴파일 속도향상에 사용하기.

ashuaria의 이미지

안녕하세요~
여러분들도 아시겠지만, 펜4 또는 제온의 하이퍼쓰레딩을 사용하시면 CPU의 남는 자원을 사용하여 속도 향상에 도움이 됩니다.
간단한 팁이지만, 혹시라도 아직 안쓰고 계신다면 사용해 보시는것이 어떨까요?
컴파일할 분량이 많을때 특히 속도가 빠릅니다.

make를 사용하실때 옵션을 하나만 추가하신다면 parallel하게 컴파일 가능한것을 찾아서 쓰레드를 늘려서 돌리게됩니다.

make -j숫자
라고 사용하시면 됩니다. 펜티엄4(즉 1CPU)를 쓰신다면 -j3로 하시면 좋을것 같습니다. -j2로 커널 컴파일을 해보니 job을 2개로 못만들더군요. job parallelize에 문제가 있는것 같습니다. 그러니 충분히 잡수를 늘려서 하시면 될것 같습니다.
그래서 공식을 적자면 n=하이퍼쓰레딩되는CPU갯수*2+1로 사용하시면 될것 같습니다. make의 복잡도에 따라서 동시에 parallel하게 컴파일 할수 있는것은 한계가 있지만 그래도 최대한 CPU를 쓸수있다면 좀더 빨리 컴파일이 가능하겠죠?

제가 커널 컴파일에 걸린 시간은 각각
make, make -j2: 약18분
make -j3, make -j4: 약15분
3분 정도가 단축되었습니다. n > 5 일때부터는 오히려 하드디스크에서 읽어오는 로드가 더 부담이 되어서 상당히 버벅거렸습니다. 참고하세요~

간단한 팁이지만 유용하게 사용할수 있습니다. ^^

Forums: 
dondek의 이미지

export MAKE="make -j4" 처럼 환경변수를 넣어두고 사용하시는 것이 make를 사용할 때 적용되지 않는 부분들을 해결하는 방법이 될 것입니다.

진리를 나의 수준으로 끌어내리지 마라.
나를 진리의 수준으로 끌어올려라. - 배꼽 중에서

guppy의 이미지

CPU가 8개짜리에서 테스트 하니 3분~~
make -j8

송효진의 이미지

-j 옵션에 의해 컴파일 오류가 나는 경우도 있다고 합니다.

젠투에서는 make.conf 에 옵션이 저장되고,
-j 옵션이 불안정함이 발견된 패키지는 ebuild 파일에서 -j 옵션을 강제지정하는 방식을 택하고 있습니다.

-j 숫자를 높게 지정하신 경우에 컴파일 오류가 난다면 숫자를 낮춰보시기 바랍니다.

익명 사용자의 이미지

죄송하지만요,, 혹시 같은 효과를 VC++에서 거둘수는 없나요?
제가 지금 펜4 3Ghz인데 센트리노 1.7보다 못한 성능이
나오거든요,, ㅠㅠ
도움 부탁드립니다..

익명 사용자의 이미지

Project -> (right button) -> Properties -> Configuration Properties -> C/C++ -> Command Line -> Additional options :

/MP

라고 넣어 주시면 됩니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.