컴터의 하드웨어와 소프트웨어의 발전속도를 비교하면..

gyxor의 이미지

오늘 아침 신문에 보니까 속도를 100배나 빠르게 하는 메인보드
구조가 나올것이라는데요..(sun 사) 과연..
소프트웨어들중에서는 현재의 시스템으로는 해결할 수 없는 문제들도
많습니다.(수학쪽..)

하드웨어와 소프트웨어 중..현재 어느것이 더 우위에 있고..
앞으로는 어떻게 될지..
궁금합니다

onemind555의 이미지

...

-----------^^ ^^ ^^ ^^ ^^ ----------
..........................................................

ihavnoid의 이미지

으음.. 인터넷을 이리저리 검색해 봤는데, 썬에서 칩과 칩을 '붙여서' 배치를 하여 속도를 60~100배 더 빠르게 할 수 있는 방법을 '발견'했다고 하네요... 으음.. 뭐 그게 당장 적용될 수 있는 기술도 아니고.. 뭐 장기적으로 생각했을 때 앞으로 100배까지 발전시킬 수 있는 가능성을 보여준다는 얘기겠죠...

2000년도에 비해 클럭스피드가 줄잡아 다섯배가 올랐죠. 성능은 그보다 더 높은 비율로 증가했고요. 이렇게 빠른 속도로 속도가 빨라지기 때문에, 이 기술을 채용한 제품이 시장에 나올때 쯤이면, 아마 지금보다 100배 빠른 컴퓨터가 대중화되어있을 것입니다.....

일례를 들어서, 프로세서를 설계할 때, 현재 나온 가장 빠른 프로세서보다 빠르게 설계한다는 목표를 갖고 설계를 하면, 회사 문 닫아야 합니다... 이미 설계를 마치고 제품양산에 들어가고 있을때면 경쟁사들은 두세배는 더 빠른 프로세서를 만들어서 팔고 있을테니깐요.

그런식으로 출시가 늦어져서 망한 프로세서들이 많은 걸로 알고 있습니다. 대표적인 케이스가 인텔의 아이태니엄 (아이태니엄2 말고)입니다. 엄청나게 진보한 아키텍쳐를 만들겠다고 용을 쓰고 난리를 쳤지만, 정작 제품이 나왔을 때는 그것보다 훨씬 가격이 싼 펜티엄 3만도 못한 성능을 내는 바람에 완전히 망했죠.
(몇개 팔렸는지 정확한 수치는 기억이 안 나지만, 개발기간 5년 이상에 수억달러의 투자금액에 비해서 터무니없이 적은 갯수가 팔린 것으로 기억합니다.)

하드웨어의 발전은 그렇습니다. 최소한 여태까지는 그랬습니다.

소프트웨어의 발전은 제가 정확히 모르겠지만, 그다지 '혁신적인' 방법이 보이지 않는 것 같네요. 개발자의 개발 능률을 높이는 어떤 방법이 잘 보이지 않네요. 10년전에 비해서 소프트웨어 개발자의 능률을 200% 이상 높이는 기술이 뭐가 있을까요?

10년전이나 사람들은 컴파일러와 링커로 빌드를 하여서 디버거로 디버깅을 하고, 테스트코드를 짜서 테스트를 합니다. 반면, 하드웨어 쪽의 경우에는 개발 능률이 매우 높아진 것으로 기억합니다. 하드웨어 쪽의 개발 능률이 높아진 데에는 개발 툴들이 개선되고, 그런 개발 툴을 돌릴 수 있는 하드웨어의 성능이 좋아진 것이 있겠죠.

덕택에, 프로세서의 파워는 점점 남아돌아가고 있습니다. 그 많은 프로세서의 파워를 활용할 만한 소프트웨어가 부족하다는 생각입니다. 물론 어떤 애플리케이션에서는 현재도 부족하지만, 프로세서가 남아돌아가는 애플리케이션이 훨씬 많겠죠.
(현재 시장에 거래되는 가장 저가의 프로세서를 이용했을 때 워드 작업을 하는 데에 프로세서가 딸려서 힘든 경우가 있나요?)

소프트웨어 발전속도가 하드웨어 발전속도보다 느린 것은 생산성 말고도 다른 이유도 많다고 생각합니다. '만들 아이디어 및 알고리즘 부족'이 대표적인 이유가 되지 않을까 하는 생각입니다.

워드에 어떤 기능을 추가/개선하면 사용자가 쓰기 편하면서(즉, 난잡하지 않으면서) 좋아질까 하는 그런 아이디어가 부족하다는 것입니다. 만일 정말로 적합한 아이디어와 방법을 알 수 있다면, 즉시 적용을 하겠죠.

설사 아이디어가 있다고 하더라도 이를 구현할 방법을 모르면 이 역시 소프트웨어로 나올 수 없고요. 예를 들어, 워드 프로그램에 음성인식을 통한 문서 작성이라는 아이디어는 쉽게 나오는 아이디어입니다. 그렇지만 충분히 쓸만한 음성인식 알고리즘이 없다면 아무리 프로세서 파워가 남아도 만들 수 없는 기능이 되는 것이죠.

Consider the ravens: for they neither sow nor reap; which neither have storehouse nor barn; and God feedeth them: how much more are ye better than the fowls?
Luke 12:24

indizarm의 이미지

functional units들을 사용자의 요구에 따라서
하나의 칩으로 집어넣는 것은 2001년인가에
Sun에서 밀었던 MAJC(매직) processor이
있지 않았나요?

한참 Java의 바이너리 코드를 변환시키지 않고
CPU에서 돌릴 수 있게 한다고 광고를 했다가
지금은 뜸한듯한데요.

어쨌거나 3개의 level로 나누어서 잔뜩 붙여넣는
형태는 새로운 것이 아닌듯합니다.

그리고 저도 전산 전공자이기는 하지만, 상대적으로
S/W의 발전이 H/W에 한참 뒤쳐지는 듯한 느낌을
받는 것은 사실입니다.

윗분이 말씀하신 바와 같이, 아이디어의 부재겠지요.

저의 교수님께서 하신 말씀이 또 떠오릅니다.

'니들은 자극 받지 않아서 그래'

세상에서 부딪히면서도 처음의 날카로움과 근성을
잃지 않았으면 좋겠습니다. (어이쿠 말이 너무 다른데로 빠졌네...)

What a Cool Days!!!

saxboy의 이미지

저는 소프트웨어의 발전을 가로막는 요소중의 하나로 reinventing the wheel 을 이야기하고 싶군요. 이 세상에 똑같은 일을 하는 소프트웨어가 얼마나 많은 지는 하나씩 적지 않아도 충분히 공감하시리라 생각합니다. 애플, 도스시절의 소프트웨어나 요즘의 소프트웨어나 그림이나 표를 잘라붙이기 좋아졌다는 것과 모양이 좀 더 예뻐졌다는 -- 또는 쓸데없이 그림이 많이 들러붙는다는 -- 점을 제외하고는 별로 달라진 것이 없지요. 요즘에는 또 embedded유행에 힘입어서 똑같은 프로그램들을 embedded용으로 한번 더 만들고 있다는 것까지 생각해보면 세상이 발전하기 위해 꽤 큰 사회적인 비용을 지출하고 있는 것은 아닌가 싶은 생각도 들곤 합니다. hwp2002는 hwp3.0에 비해 엄청나게 진보한 것일까요?

소프트웨어의 발전이란 -- 앞으로도 여러가지가 있겠지만 -- 결국 왜 더 발전해야 하는지 저는 잘 모르겠습니다. 어차피 소프트웨어란 사람들이 컴퓨터로 무언가를 좀 더 쉽게 하기 위해 생겨나는 것이고, 사람들이 컴퓨터로 해야 하는 일이 문서작성이나 영화감상, 음악감상, 통신 정도의 일 말고는 뭐가 더 있어야 할지 아직은 별로 느낌이 없네요.

천년 전이나 지금이나 인간이 사는 방식은 그리고 하는 일들은 별로 달라보이지 않습니다. 친구를 만나고, 글을 쓰고, 먹고 살기 위해 무언가 일을 하고, 즐기고... 하드웨어나 소프트웨어나 결국은 이런 일들을 돕기 위해 생겨난 부산물에 불과하겠지요. 결국 사람들이 해야 하는 일이 같은 이상, 그리고 그 필요성의 상당 부분은 이미 충족되어 있는 이상 발전할 방향이라는 것은 인간과의 인터페이스밖에 없는 것은 아닌가 문득 생각해봅니다.

그냥 잡설이었고요. 궁금해져서요. 대체 소프트웨어의 발전이란 어떤 것일까요? 리눅스 2.6은 리눅스 1.0에 비해 발전한 것인가요? Windows XP는 Windows 95에 비해 발전한 것인가요?
pentium4 2.6G는 분명히 8088과 비교가 불가능할 정도로 <발전>한 것이 맞다고 생각합니다. 하지만 우리가 똑같은 문서를 작성하기 위해서 문서작성 프로그램이 로딩되는 동안 기다리는 시간은 늘어났지요. 대체 소프트웨어가 발전한다는 것은 어떤 의미일까요?

ps. 그냥 평소에 자주 해오던 생각이라 몇글자 적어보았습니다. 적어도 저와 비슷한 고민을 하셨던 분이 계신다면 <달라진점>을 나열해주시지는 않으리라 생각합니다. 많은 분들의 의견을 듣고 싶습니다.

zltek의 이미지

saxboy wrote:
hwp2002는 hwp3.0에 비해 엄청나게 진보한 것일까요?

진보하지 않았다, 가 답일까요? 윈도나 한글이나 처음부터 의도한데로 제작되고 동작했고 계속해서 개선되나가고 있을 뿐입니다. 주된 형태가 일관된게 이상할게 없죠. 로터스123이나 엑셀xp가 하는 일이라곤 칸을 가득채운 숫자들의 덧셈뺄셈 뿐이듯이요.. 윈도우즈의 창들은 열렸다 닫힐 뿐이고..

논의가 애매할 것 같습니다. '십년전의 피시게임은 지금보다 재미없는가?' 이런 것처럼요.

"no error was found with his codes"

ihavnoid의 이미지

saxboy wrote:
저는 소프트웨어의 발전을 가로막는 요소중의 하나로 reinventing the wheel 을 이야기하고 싶군요.

'reinventing the wheel'은 하드웨어에서도 마찬가지가 아닐까 생각됩니다.
그러니까 코드 재사용이 강조되고 있겠죠.^^

Consider the ravens: for they neither sow nor reap; which neither have storehouse nor barn; and God feedeth them: how much more are ye better than the fowls?
Luke 12:24

NeoTuring의 이미지

아마도 하드웨어의 발전이란것이 어떤 스펙을 만족시키는 정량적인 기준을

갖고 있는 반면 소프트웨어는 사람들의 요구사항에 대한 만족성이라는

정성적인 가치 기준을 갖고 있기 때문에 소프트웨어가 발전하지 않는것처럼

보이는것인지 모르겠습니다.

하지만 제가 생각할때 소프트웨어는 적어도 현재까지는 사람들이 무언가를

생산하고, 소비하는데 쓰이는 도구가 된다는 점과 과거보다는 현재시점에

가까워질수록 소프트웨어가 더 많은 사람들의 더 풍부한 요구사항을

만족시키고 있다는 점등을 충분히 인정하고 있기 때문에 소프트웨어도

엄연한 발전의 길을 걷고 있다는데 대해 약간이라도 의심을 갖고 있지는

않습니다.

다만, 사람들의 요구사항의 증가속도가 그시대의 소프트웨어가 함유할 수

있는 요구사항 항목크기의 증가속도보다 더 빠르다면 외견상 보기에

소프트웨어가 발전하지 않는것처럼 보일수는 있다고 생각이 되네요.

물론 하드웨어의 발전속도는 소프트웨어의 그것을 훨씬 추월하는것이

거의 명백한 사실인것 같구요.

또 reinventing the wheel 의 경향은 소프트웨어가 원래 내재하고 있는

invisible한 특성에서 기인한 부분이 상당히 크다고 생각합니다.

눈에 잘 띄지 않기 때문에 각각의 소프트웨어를 인식하기도 쉽지 않을뿐더러

인식하더라도 어떻게 그것을 재 사용할것인지를 파악하기 위해서는

또 다른 비용이 야기 되기 때문이죠.

전산분야가 태어날때부터 고의적 재사용을 추구하려고 했고, 그러한 요소들을

전세계가 단일하게 공유하는 어떤 repository를 보유하고 있었다면

몰라도 그렇지 않은 현재의 상황에서는 어차피 여기 저기에서 산발적으로

똑같은것을 만들 수 밖에는 없는것이고, 그 과정을 거쳐 이제야

되도록이면 reinventing the wheel 을 방지하자는 말이 나오게 된것이라고

봅니다.

전산의 역사가 짧기 때문에 reinventing the wheel 의 경향은

어쩔 수 없는 부분이 있다는 거죠. 그러나 그렇다 하더라도

소프트웨어의 invisible한 특성때문에 앞으로도 reinventing the wheel은

당분간 계속 될것 같다는 생각이 드네요.

morning의 이미지

음... 소프트웨어가 해당 하드웨어에서 굴러가는 한 덩어리인데
이를 분리해서 '경주'하듯이 속도 비교하는 것은
좀 적절하지 않아 보입니다.

하드웨에의 발전이라는 속도, 안정성, 호환성 정도의 요소가 있다면
소트트웨에어의 발전이라면 속도, 안정성, 화환성 이외에도
엄청나게 많은 요소가 있지 않습니까?
가령 편리한 인터페이스, 많은 자동화된 처리, 유연성, 오류의 감소...
소프트웨어의 발전에 연산 속도를 개선하는 알고리즘도 있겠지만
보다 최적화된 '아름다운' 것들이 많이 있다고 생각됩니다.

하드웨어의 덕택으로 같은 프로그램이 빨라 졌다면
결국 우리가 사용하는 솔루션인 빨라진 것이겠죠.

조르바와 함께 춤을....

ihavnoid의 이미지

morning wrote:
음... 소프트웨어가 해당 하드웨어에서 굴러가는 한 덩어리인데
이를 분리해서 '경주'하듯이 속도 비교하는 것은
좀 적절하지 않아 보입니다.

하드웨에의 발전이라는 속도, 안정성, 호환성 정도의 요소가 있다면
소트트웨에어의 발전이라면 속도, 안정성, 화환성 이외에도
엄청나게 많은 요소가 있지 않습니까?
가령 편리한 인터페이스, 많은 자동화된 처리, 유연성, 오류의 감소...
소프트웨어의 발전에 연산 속도를 개선하는 알고리즘도 있겠지만
보다 최적화된 '아름다운' 것들이 많이 있다고 생각됩니다.

하드웨어의 덕택으로 같은 프로그램이 빨라 졌다면
결국 우리가 사용하는 솔루션인 빨라진 것이겠죠.

소프트웨어의 그러한 많은 요소들이 바로 '창의성'입니다. 그러한 최적화된 '아름다움'을 하고 싶어도 '뭘 해야할까' 를 생각하다가 못하는 것이죠.

으음.. 뭔가 쓰려다가, 결국 '왜 이렇게 되었을까' 하는 것을 생각해 냈습니다.

무어의 법칙이라고 아실 것입니다. 1년반에 반도체 집적률이 2배씩 된다고.

즉, 하드웨어는 매년 '칩 하나에 쑤셔넣을 수 있는 회로의 양'이 50퍼센트 이상 증가합니다. 쑤셔넣기 힘들면 그냥 늘어난 자리에 똑같은 거 두개 집어넣고 세개 집어넣으면 됩니다. 아니면 같은 것을 이용하더라도 사이즈 크고 성능 더 좋은 것을 마구 쑤셔넣으면 됩니다. 물론 그런 작업 자체도 무쟈게 힘들기 때문에 인텔 같은 데에서는 돈을 엄청나게 퍼부어서 겨우겨우 만들어내지만, 그래도 최소한 가능은 합니다. 그렇지만 소프트웨어는 똑같은 거 두개 쑤셔넣는다고 뭐가 달라지지 않습니다. 결국 '뭘 어떻게 만들어야 할까'는 생각이 부족해서 그런 것입니다.

하드웨어 설계 능률은 (여태까지) 매년 약 20몇프로씩 성장한다는 통계도 있었습니다. 소프트웨어 설계 능률은 얼마나 성장했는지 모르겠지만, 그래도 꽤 많이 성장했다고 생각을 합니다. 그렇지만, 하드웨어 설계 능률을 향상시키는 데에는 더 좋은 시뮬레이션 프로그램, 더 좋은 (시뮬레이션용) 컴퓨터, 뭐 이런 것들이 작용한 데에 반해, 소프트웨어의 경우에는 이런 '도구의 개선'에 따른 이득을 많이 보지 못한 것이 크다고 생각합니다. 즉, 하드웨어 설계능력의 향상에 있어서는 그냥 단순히 '성능이 좋아진' 것이 많이 작용한 반면, 소프트웨어의 설계능력 향상에 있어서는 '뭔가 창의적인 아이디어'가 작용을 한다는 것입니다. 단순히 컴퓨터 성능이 좋아진다고 설계능률이 높아지지는 않죠.

Consider the ravens: for they neither sow nor reap; which neither have storehouse nor barn; and God feedeth them: how much more are ye better than the fowls?
Luke 12:24