-
다중 코어 프로그래밍운영체제/스레드 2018. 2. 3. 17:33
코어가 여러 개인 시스템을 다중 코어 또는 다중 처리기 시스템이라고 부른다.
암달의 법칙 : 처리 코어의 수가 n개가 된다고 해서 처리 속도가 n배가 되지는 않는다.
병렬 실행 : 동시에 하나 이상의 태스크를 수행 할 수 있는 시스템을 의미한다.
병행 실행 : 프로세스들이 빠르게 교체되어 병렬 실행 되는 것처럼 보이게 하는 것
프로그래밍시 극복 과제
- 태스크 인식 : 독립된 병행 가능한 태스크로 나눌 수 있는 영역 찾기
- 균형 : 전체 태스크들이 전체 작업에 균등한 기여도를 갖는 것이 중요하다.
- 데이터 분리 : 데이터도 개별 코어에서 사용될 수 있게 분리한다.
- 데이터 종속성 : 둘 이상의 태스크가 동시에 접근하는 데이터에 종속성 여부를 검토한다.
- 시험 및 디버깅 : 병렬로 실행되는 다양한 실행 경로로 인해 프로그램의 시험과 디버깅이 어려움
병렬 실행의 유형
데이터 병렬 실행
동일한 데이터의 부분 집합을 다수의 계산 코어에 분배
각 코어에서 동일한 연산 수행
태스크 병렬 실행
데이터가 아닌 태스크를 다수의 코어에 분배
각 코어의 스레드는 각각 고유 연산을 수행
댓글