20160303

동시성 프로그램의 이해
– 과거에는 극히 일부의 과학자들만이 병렬 컴퓨팅을 사용했으나, 이제는 대부분의 컴퓨터 시스템이 병렬성을 활용하고 있다. 스마트폰부터 시작해 GPU까지 멀티 코어로 설계되어 있다. 이 수업에서는 동시성 프로그램의 1) 성능&아키텍쳐 측면과 2) 올바름(correctness) 측면에 대해 이야기한다.
– 무어의 법칙은 18개월마다 칩에서 사용 가능한 트랜지스터가 두 배가 된다는 법칙(1975). 무어의 법칙에 대한 잘못된 이해가 있다. 무어의 법칙은 시간에 따른 트랜지스터 수의 증가를 이야기하는 법칙이지, 성능이 그만큼 향상된다는 법칙이 아니다. 칩에 올라가는 트랜지스터의 수가 두 배가 된다고 해서 성능이 두 배가 되는가? 꼭 그런 것은 아니다. 트랜지스터가 성능으로 어떻게 변환되느냐에 따라 달라진다. 트랜지스터를 성능으로 바꾸기 위한 여러 기법들이 고안되었다. Pipelining, superscalar, cache 등이 대표적인 기법이다.
– 하지만 이마저도 클럭 속도 향상의 한계, 전력 소모량의 한계, 와이어 속도 한계, 쿨링 한계로 인해 한계에 다다름(diminishing return). 성능의 한계를 해결하기 위해 병렬 아키텍쳐가 각광받고, 많이 사용되고 있다.
– 병렬성을 활용하는 것은 쉬운 일이 아니다. 병렬 알고리즘 개발, 소프트웨어 개발, 아키텍쳐의 개발이 어렵기 때문이다. 게다가 메모리 latency와 bandwidth, 프로세서간 통신, 입출력도 한계에 부딪히고 있다.
– 개발에서 테스팅은 매우 중요함. 테스팅은 매우 까다로운데, 병렬 프로그램에서 이 문제는 더욱 복잡해진다. 이를 해결하기 위한 기법들이 필요함.

Advertisements
Tagged with: , , , , , , , , , ,
Posted in 1) Memo

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Recent Posts
누적 방문자 수
  • 142,141 hits
%d bloggers like this: