철수네 소프트웨어 세상 [본점]

소프트웨어와 관련이 있다면 뭐든지 – I no longer work for Microsoft.

유니프로세서 시절의 철지난 기존 지식이지만

with 2 comments

http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-183.html

이 논문에 나온 “철지난 기존 지식(Outdated Conventional Wisdom)”들을 옮겨본다:

  • 전원은 공짜지만, 트랜지스터는 비싸다.
    New – “파워 장벽(Power Wall)”. 공급할 수 있는 전원보다 많은 트랜지스터를 집적할 수 있다.
  • 전원에 대해서 걱정할 것은 동적 전원(Dynamic Power)이다.
    New – PC나 서버에서 샐 수 있는 정적 전원(Static Power)는 40%나 된다.
  • 실리콘 Monolithic 유니프로세서는 내부적으로 안정적이고 문제는 핀에서 온다.
    New – 칩의 집적도가 65nm 이하가 되면서 높은 소프트/하드 에러율이 발생할 것이다.
  • 기존 성공 위에 새로운 추상화를 얹어서 하드위어 디자인의 크기를 증가시킬 수 있다.
    New – Wire delay, noise, cross coupling (capacitive and inductive),
    manufacturing variability, reliability, clock jitter, design validation등등으로 65nm이하의 큰 디자인의 개발시간과 비용이 커지게 된다.
  • 연구자(Researcher)들은 칩을 만들어서 새로운 아키텍쳐를 시연한다.
    New – 65nm이하의 공정 마스크의 비용, 이런 칩 디자인을 위한 설계(eCAD) 소프트웨어의 비용 그리고 GHz 클럭을 위한 디자인 비용등으로 인해 연구자들은 더이상 믿을만한 프로토타입을 만들기 힘들어졌다. 아키텍쳐를 시험해볼 새로운 접근이 개발되어야 한다.
  • 퍼포먼스 향상은 낮은 레이턴시(latency)와 높은 대역폭(bandwidth)를 가져온다.
    New – 많은 기술들에 있어서 대역폭은 최소한 레이턴시(latency) 향상의 제곱 이상 향상된다.
  • 곱셈연산(multiply)는 느리고, 적재(load)/저장(store)은 빠르다.
    New – “메모리 장벽(Memory Wall)”. load/store는 느리고 multiply는 빠르다. 모던 마이크로프로세서에서 DRAM 접근은 200클럭까지 걸릴 수도 있지만 부동소수점(floating-point) 곱셈 연산은 4클럭이면 된다.
  • 컴파일러와 아키텍쳐 이노베이션으로 ILP(instruction level parallelism, 연산 레빌 병렬성)을 높일 수 있다. (branch prediction, out-of-order execution, speculation, Very Long instruction Word system사용 등)
    New – “ILP 장벽”. 더 많은 ILP를 찾는게 점차 힘들어지고 있다.
  • 유니프로세서의 퍼포먼스는 18개월마다 2배가 된다. (무어의 법칙은 유니프로세서는 아님)
    New – “전원 장벽”+”메모리 장벽”+”ILP 장벽”=막다른길. 1986년부터 2002년까지는 18개월마다 2배가 되었지만, 이제는 유니프로세서가 2배가 되기위해서 5년이나 걸릴 수 있다.
  • 병렬화할 필요 없이 좀 기다리면 결국 컴퓨터가 빨라져서 병렬화할 필요가 없어진다
    New – 직렬 컴퓨터의 속도 향상은 길어지고 있다.
  • 프로세서의 퍼포먼스를 향상시키는 가장 좋은 방법은 클럭주파수를 늘리는 것이다.
    New – 병렬성을 늘리는 것이 프로세서 퍼포먼스를 향상시키는 가장 좋은 방법이다.
  • 멀티프로세스 응용프로그램의 선형 스케일링 이하는 실패 요소다
    New – 병렬 컴퓨팅으로의 이전한다면, 병렬성을 사용한 속도 향상은 성공 요소이다.

2006년 논문이지만, 그래도 생각할 꺼리는 흡족할만큼 있다. 일부는 최근 논문을 찾아보고 Revise해봐야겠다.

2005년의 이런 글이 있긴 하지만, 소프트웨어에 있어서 병렬성의 잠재성은 아직도 걸음마 수준이고 새로운 패러다임을 찾고 있는 알파상태다. 병렬성이 이런 이유는 그 복잡성 더하기 예측불가의 불확실성일테지.

그래도 마치 모뎀이 전화선으로는 2400이 마지막이라느니 2400MNP가 최고라느니 14400은 넘을 수 없다느니, 56k가 끝이라느니 계속되는 배리어깨기처럼 인간이라는 녀석은 뭔가를 찾아 배리어를 깰 것이라는 생각을 한다. 자야겠다.

Written by charlz

2009년 1월 29일 , 시간: 오전 3:25

Uncategorized에 게시됨

2개의 답글

Subscribe to comments with RSS.

  1. 철수의 생각…

    유니프로세서 시절의 철지난 기존 지식이지만…

    charlz' me2DAY

    2009년 1월 29일 at 오전 3:27

  2. 꼬꼬마인 저에겐 상당히 새로운 내용이네요..

    아크몬드

    2009년 1월 29일 at 오후 1:39


답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중

%d 블로거가 이것을 좋아합니다: