CPU 100% 활용하는 방법

igidariju의 이미지

수고많으십니다

CPU 100% 활용하는 방법을 아시면 가르쳐 주세요.

보통 XP에서 프로그램을 돌리면 CPU가 듀얼이면 한 CPU만 프로그램 실행해서 50% 활용 밖에 안됩니다.

Linux에서 프로그램을 돌리면 100% 다 활용할 수 있나요?

그리고 다른 방법이 있으면 알려주세요 ^^

감사합니다.

ifree의 이미지

프로그램이 CPU 하나만 쓰겠다는데 리눅스라고 별 수 있나요?
프로그램 자체에서 멀티쓰레드를 지원해야 합니다.

sisuc의 이미지

CPU를 최대한 활용하시려면

여러가지 작업을 동시에 하시면 됩니다.

"위대한 한글"

위대한 한글

송효진의 이미지

'젠투리눅스 골수 이용자가 된다.'

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇 개 안돼요~
http://xenosi.de/

lain07의 이미지

세상에..
대체 이거 몇시간 째인지..

이제 전기세 걱정을 떠나
니가 이기나 내가 이기나의 원초적이고 원시적인 싸움으로 변질되고 있습니다.
___________________________
I like Small Linux.


___________________________
I like Small Linux.

rgbi3307의 이미지

이것을 지향하는 프로세서가 MIPS(Microprocessor without Interlocked Pipeline Stages) 입니다.

운영체제를 포함한 소프트웨어들은 시간을 세분화하여 프로세스를 쪼개주는 역할만 해줄 수 있죠.
이것을 보통 쓰레드, 시분할, 멀티프로세싱.. 이렇게 얘기하는데,
결국은 CPU가 똑똑해야 시분할된 프로세스들을 100% 동시 처리가능합니다.

x86은 8비트, 16비트, 32비트... 지원하느라 아주 설계가 복잡해졌습니다.
요즘 멀티코어니 듀얼이니 하는데, CPU 역할을 하는 것을 자꾸 추가만 하면 뭣하나요.
설계 자체가 꼬여 버렸는데... 그래서 내부적으로 엄청 열받나 봅니다. 엄청 큰 냉각팬으로 열 식히느라 바쁘죠.
이런 설계를 따라가고 있는 MS Win도 엄청 힘들듯 하네요~

From:
*알지비 (메일: rgbi3307(at)nate.com)
*학창시절 마이크로마우스를 만들었고, 10년동안 IT관련 개발자로 일하고 있음.
*틈틈히 커널연구회(http://www.kernel.bz/) 내용물들을 만들고 있음.
*((공부해서 남을 주려면 남보다 더많이 연구해야함.))

From:
*알지비 (메일: rgbi3307(at)nate.com)
*커널연구회(http://www.kernel.bz/) 내용물들을 만들고 있음.
*((공부해서 남을 주려면 남보다 더많이 연구해야함.))

rgbi3307의 이미지

CPU와 소프트웨어(특히, 운영체제, 컴파일러) 모두 똑똑해야 겠습니다.
고수분들의 칼날이 날아오는 소리가 이곳저곳에서 들리는듯 하여, 다시 정리합니다.

CPU(마이크로프로세서)는 크게 4가지 장치로 구성되어 있는데,
명령어 해석기, 산술논리연산기, 메모리접근제어기(load/store), 레지스터입니다.
이놈들이 동시에 동작하도록 설계해야 겠습니다.
과거에는 한번씩 단계적으로 처리(명령해석한 다음에 산술논리연산, 그다음에 메모리접근...)했는데,
요즘은 명령해석하면서 산술논리연산도하고 메모리접근도 하도록 설계 및 연구하는듯 합니다.
특히, MIPS는 설계부터 이것을 지향하고 있습니다.

소프트웨어 또한 아주 덩어리가 큰 프로세스(작업단위)를 잘게 쪼개서
CPU에게 시분할로 던져주어야지 CPU가 잘게잘게 씹어서 소화시킬 수 있겠죠?

MS 윈은 과거 8비트, 16비트 명령어 처리 호환 문제로 힘겨울듯 합니다.
리눅스는 위의 내용을 감안하여 설계한듯한데,
내가 머.. 리누스 토발즈의 설계내용을 다 이해를 못해서... 이만.

From:
*알지비 (메일: rgbi3307(at)nate.com)
*학창시절 마이크로마우스를 만들었고, 10년동안 IT관련 개발자로 일하고 있음.
*틈틈히 커널연구회(http://www.kernel.bz/) 내용물들을 만들고 있음.
*((공부해서 남을 주려면 남보다 더많이 연구해야함.))

From:
*알지비 (메일: rgbi3307(at)nate.com)
*커널연구회(http://www.kernel.bz/) 내용물들을 만들고 있음.
*((공부해서 남을 주려면 남보다 더많이 연구해야함.))

tj의 이미지

> 요즘은 명령해석하면서 산술논리연산도하고 메모리접근도 하도록 설계 및 연구하는듯 합니다.

이렇게 한 지 오래 됐는걸요.

> 특히, MIPS는 설계부터 이것을 지향하고 있습니다.

지금에 와선 인스트럭션 셋은 큰 영향은 없습니다. 지금에 와서도 아니고 이렇게 된지 십년이 넘어갑니다. Ppro가 기점이었다고 보통 그러구요. 규모의 경제 영향이 크긴 했지만 어느 지점을 넘어서면서 RISC의 기술적인 이점이 사실상 사라져 고성능 영역에서 밀려났고 다른 삽질도 많았지만 기본적으론 ISA가 성능에 미치는 영향이 급격히 줄었기 때문에 ia64도 가라앉은거구요.

> MS 윈은 과거 8비트, 16비트 명령어 처리 호환 문제로 힘겨울듯 합니다.

부팅 과정을 제외하면 전혀 아무런 영향 없습니다.

> 리눅스는 위의 내용을 감안하여 설계한듯한데,

일반적으로 쓰이는 현대적인 커널들은 기본적으로 거의 비슷한 형식을 따르고 있고, 말씀하신 내용에 대해 다를 부분은 없습니다.

최종호의 이미지

> 지금에 와선 인스트럭션 셋은 큰 영향은 없습니다. 지금에 와서도 아니고 이렇게 된지 십년이 넘어갑니다. Ppro가 기점이었다고 보통 그러구요. 규모의 경제 영향이 크긴 했지만 어느 지점을 넘어서면서 RISC의 기술적인 이점이 사실상 사라져 고성능 영역에서 밀려났고 다른 삽질도 많았지만 기본적으론 ISA가 성능에 미치는 영향이 급격히 줄었기 때문에 ia64도 가라앉은거구요.

재미있는 내용인 듯 한데 제 마지막 지식이 좀 오래된 것이라 잘 모르겠네요.
Ppro는 Pentium Pro인가요? ISA는 Instruction Set Architecture인가요? ㅡ.ㅡ?
혹시 최근 10-15년 정도의 관련기술 흐름을 조금 더 자세히 파악할 수 있는 관련된 아티클이나 자료 몇개 던져주실 수 있을까요?

rgbi3307의 이미지

반도체 제조 공정은 수십 나노(수치는 들었는데 까먹었음)가 한계라서
더이상 얇게 만들 수 없다는 얘기는 제조회사에 다니는 지인으로 부터 듣기는 했습니다.

그러나 Microprocessor 디자인 및 설계분야는
Hardware MultiThreading
MultiCore
MultiProcessor
Cluster
Graphics Computing
등의 주제로 활발히 연구되고 있습니다.

아래의 참고서적은(2008년에 Fourth Edition 나왔음)
MIPS 구조를 1984년에 최초로 설계한 John L. Hennessy 교수가 집필한 것입니다.
Hennessy 교수는 현재 스탠포드대학교의 학장으로 일한다는데,
후학들이 열심히 하고 있는듯 합니다.
2002년까지 계속 버젼을 발표하고 있고, 발전방향을 느낄 수 있습니다.

Computer Organization and Design, Fourth Edition
: The Hardware/Software Interface
(The Morgan Kaufmann Series in Computer Architecture and Design)
by David A. Patterson and John L. Hennessy
(Paperback - Nov 10, 2008)

1984년 MIPS R2000 (32bits)
1988년 MIPS R3000
1991년 MIPS R4000 (64bits)
1994년 MIPS R8000
1998년 MIPS R12000
2002년 MIPS R16000 (Clock Speed 1GHz)
...

From:
*알지비 (메일: rgbi3307(at)nate.com)
*학창시절 마이크로마우스를 만들었고, 10년동안 IT관련 개발자로 일하고 있음.
*틈틈히 커널연구회(http://www.kernel.bz/) 내용물들을 만들고 있음.
*((공부해서 남을 주려면 남보다 더많이 연구해야함.))

From:
*알지비 (메일: rgbi3307(at)nate.com)
*커널연구회(http://www.kernel.bz/) 내용물들을 만들고 있음.
*((공부해서 남을 주려면 남보다 더많이 연구해야함.))

tj의 이미지

약어는 둘 다 맞습니다. 정리된 자료는 모르겠는데 위키페디아에서 isa나 각 프로세서 세대에 해당하는 페이지들을 읽어보면 도움이 될 것 같습니다. 다음 그래프도 재밌습니다.

http://en.wikipedia.org/wiki/File:Processor_families_in_TOP500_supercomputers.svg

drinkme의 이미지

사견입니다만....
(제가 오해가 있었을 수도)

CPU 모니터를 볼 경우,
XP에서는 50%고 나오고, linux에서는 100% 나왔다고 해서,
linux가 XP보다 CPU를 잘 활용하는구나... 라고 말씀하신다면
이건 '아니'라고 생각합니다.

같은 뭔가를 할 경우,
한쪽에서는 50%, 한쪽에서는 100%라면... 50%인 쪽의 s/w 효율이 좋은게 아닐까요?
다른 뭔가를 더 구동할 수 있는 여지가 있는거니까요.

제 집에 있는 desktop은 튜알라틴(맞나?) 셀1.3 입니다.
xp를 돌리고 있는데
뭣좀 할려고 하면, CPU가 100%로 돌죠.
xp가 cpu를 100% 활용하는 뿌듯한 상황일까요? 저는 웁니다.

일전에 이런 생각을 해 본적이 있습니다.
s/w가 CPU를 100% 잘 이용하는 (긍정적인 측면에서의) 상황과
CPU 성능이 모자란 상황을 극적으로 구분할 수 있는가.
제 결론은 그렇습니다.
만약 어떤 상황에서 CPU 모니터에 100%가 나왔다면,
(이게 100%이용되는 것인지, CPU가 딸리는 것인지 구분이 어려우므로)
그 상황에서만큼은 그 시스템의 CPU는 딸리는 것이다. 라고요.

whitelazy의 이미지

동일한 컴퓨터상에서 XP와 리눅스에서 프로그램을 돌렸을때 한쪽은 50% 한쪽은 100% 시스템자원을 사용하고

듀얼코어라면

단지 한쪽은 싱글프로세스 싱글스레드 한쪽은 멀티프로세스 또는 멀티 스레드로 되어있는 프로그램입니다..

저라면 100%잡아먹는 SW를 선택하겠습니다. 이유야 당연히 더 빨리 작업이 끝나니까요. 일반적으로는 더 빨리 끝나는 녀석을 효율이 좋다고 말합니다. cpu는 놀리라고있는게아니라 잡아먹으라고(?) 있는거니까요...

튜알셀 1.3을 예로 드셨는데 싱글코어가 아닌 듀얼코어 이상의 컴퓨터 들에서는 일반적인 컴퓨터 사용에 단지 시피유 100% 점유한다고
다른작업을 하는데 심각하게 느려지진 않습니다. 하드만 억세스안하면요 ..... 하지만 보통 하드를... 긁죠.... OTL

FIFO의 이미지

무한루프에 sleep 안쓰고 돌리면 100% 먹습니다.
100% 이런거에 너무 집착하지 마세요. 이거는 마치 CPU 온도같은 그냥 그런 수치일 뿐입니다.
군대에서 조낸 삽질한다고 일 잘하는거 아니지요. 삽질했는데 도로 묻어라 그러면 완전 ㅂㅅ 인증일뿐.
마찬가집니다. CPU 조낸 부려먹었는데 헛일이네 이런거 얼마든지 그럴 수 있습니다.
얼마전에 CPU 사용률과 관련된 안 좋은 기억이 있었기에... 여튼 숫자에 너무 개념치 마십시오.

red10won의 이미지

Idle이 99 100 이렇게 남도록 코딩하도록 최대한 노력해야 됩니다.

부하가 많아서 좋을게 없죠.

송효진의 이미지

경우에 따라 다 다른 것 아니겠습니까.^^
대부분의 웹서비스 에 대해서만 동의합니다.

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇 개 안돼요~
http://xenosi.de/

whitelazy의 이미지

3D 게임을 하는 입장에서는 시피유 박박 긁어서 쓰더라도 1프레임이라도빠른게 좋답니다 ㅠㅠ

unipro의 이미지

같은 성능이라면 부하를 적게 잡아 먹는게 좋다는 말이겠죠?
컴퓨터 자원을 최대한 활용해서 안정적으로 최대 성능을 내는 것이 좋겠죠.

----
내 블로그: http://unipro.tistory.com

내 블로그: http://unipro.tistory.com

댓글 달기

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