티스토리 툴바


이번에 MDS를 Parallel로 구현하는 과정에서 Parallel로 Converting시켜 구현한 Program의 성능이 더 안좋게 나와서 이런저런 자료들을 찾아보다가 알게된 Amdahl의 법칙...이걸 읽고나니, 아무래도 설계를 다시해야지 싶다..ㅠㅠ



 Amdahl의 법칙


컴퓨터 아키텍트이자 IBM 직원이었던 Gene Amdahl은 IBM과 그의 이름을 딴 벤처 기업인 Amdahl Corporation에서 컴퓨터 아키텍처를 개발했다. 그는, 시스템의 한 부분이 향상될 때 전체적인 시스템 향상도를 예상하는 법칙으로 유명해졌다. 이 공식은 멀티 프로세서를 사용할 때 이론상의 최대 성능 향상을 계산하는데 사용되고 있다. (그림 1)


그림 1. Amdahl의 프로세서 병렬성 법칙

그림 1과 같은 방정식을 사용하여 N 개의 프로세서와 병렬화 될 수 없는 시스템의 부분을 지정한 F 요소(본질이 순차적인 시스템의 부분)를 사용하여 시스템의 최대 성능 향상을 계산할 수 있다. 결과는 그림 2에 나타나있다.


그림 2. 최대 10개의 CPU에 대한 Amdahl의 법칙

그 림 2에서, 맨 위에 있는 라인은 프로세서의 수를 나타낸다. 이상적으로는, 프로세서들을 추가함으로써 얻고 싶은 결과이다. 안타깝게도, 모든 것들이 병렬화 될 수 있는 것은 아니고 프로세서를 관리하는데 오버헤드도 있기 때문에 속도 향상은 크게 없다. 밑에 있는 라인(보라색 라인)은 90%가 순차적인 문제의 경우이다. 최상의 퍼포먼스를 보이는 갈색 라인은 10퍼센트가 순차적이고, 따라서 90퍼센트가 병렬화 가능하다. 이 경우에서도 10개의 프로세서들은 5개 보다 약간 더 나은 성능을 보일 뿐이다.


저작자 표시 비영리 변경 금지
Posted by Jason Park