티스토리 뷰

728x90
반응형

병렬프로세싱에서 부딪히는 문제점은 병렬 하드웨어를 성능향상에 활용하는 병렬처리프로그램이 많지 않다는 것이다.

병렬처리프로그램은 작성하는 데 많은 어려움을 겪는다. 병렬 프로세서가 처리할 수 있도록 프로그램을 조각내고, 이를 균등하게 맞추어야 하며, 프로세서 간 통신에 의한 오버헤드를 고려하는 등 여러 요소에서 제약을 맞추어야 병렬 프로세서을 이용해 성능을 향상시킬 수 있다.

최근에는 특별히 작성된 병렬 프로그램이 아닌 기존의 순차 프로그램이 단일 프로세서 내에서 명령어 수준의 병렬성(instruction-level parallelism, ILP) - 슈퍼스칼라, 비순차실행 등을 활용하여 빠르게 실행될 수 있기 때문에 극단적인 성능 향상의 경우가 아니라면 병렬 프로그램을 힘들게 작성해야 필요를 느끼지 못한다고 한다.

프로그램이 병렬 하드웨어를 사용할 때 얼마나 효율적으로 사용할 수 있는지를 확인하는 법칙이 있다. 바로 Amdahl의 법칙이다.

Amdahl의 법칙은 다음과 같다.

\textrm{A = 원래 프로그램 수행에 걸리는 시간}

\textrm{B = 원래 프로그램에서 개선할 수 있는 부분을 수행하는 데 걸리는 시간}

\textrm{C = 개선할 부분의 개선 정도}

\textrm{속도개선의 정도}=\frac{A}{\left ( A-B \right )+\frac{B}{C}}

Amdahl의 법칙을 사용해 속도 개선을 측정할 때 경성 스케일링(strong scaling)연성 스케일링(weak scaling) 방식으로 측정할 수 있다. 경성 스케일링은 문제의 크기를 고정시킨 상태에서 프로세서의 개수를 늘렸을 때 프로세서당 성능의 향상 정도를 측정하는 것이다. 연성 스케일링은 프로세서의 개수에 비례하여 문제의 크기를 증가시켰을 때 프로세서당 성능의 향상 정도를 측정하는 것이다. 보통 연성 스케일링에서 성능 개선이 더 높게 측정되지만 캐시 메모리에 처리해야할 데이터를 모두 담지 못한다면 오히려 성능이 저하되기도 한다고 한다. 이러한 측정 방식은 컴퓨터 시스템의 사용 환경에 따라 적절하게 선택되어야 한다.

속도 개선에는 부하의 균형(load balancing)이 영향을 미친다고 한다. 최종 수행 시간에는 가장 오래 걸리는 프로세서에 의해 결정되므로 프로세서에 걸리는 부하가 균형이 맞지 않으면 해당 프로세서만 동작하고 나머지 프로세서는 놀게 되어 자원이 낭비되어 속도가 개선되지 않게 된다.

728x90
반응형
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함