728x90
반응형
멀티코어 or 멀티프로세서에서의 극복해야 할 도전과제 5개
- 태스크 인식 (Identifying Tasks)
- 병렬 처리가 가능한 태스크로 나눌 수 있는 영역을 찾는 작업 필요
- 균형 (Balanace)
- 전체 작업에 균등한 기여도록 가지도록 태스크를 나눠야 함
- 데이터 분리 (Data Splitting)
- 처리하는 데이터들이 분리된 개별 코어에서 수행해도록 나눠야 함
- 데이터 종속성 (Data Dependency)
- 데이터 의존성을 조정하기 위한 태스크 실행 동기화 필요
- 시험 및 디버깅 (Testing & debugging)
- 병렬로 실행되기 때문에, 단일 스레드 응용보다 Testing 및 Debugging이 어려움
병렬 실행(Parallelism)의 유형
- 데이터 병렬 실행 (Data Parallelism)
- 데이터(Data)를 여러 개의 코어(Core)에 분배
- 태스크 병렬 실행 (Task Parallelism)
- 태스크(Task)를 여러 개의 코어(Core)에 분배
동시성(Concurrency) vs 병렬성(Parallelism)
암달의 법칙 (Amdahl’s Law)
‘순차 실행’ 구성 요소와 ‘병렬 실행’ 구성요소로 이루어진 응용 프로그램에 추가의 계산 코어를 더했을 때,
얻을 수 있는 잠재적인 성능 이득을 나타내는 공식
- S: 순차적으로 실행되어야 하는 구성 요소
- N: 시스템의 처리 코어 개수
N이 무한대에 가까워지면, 속도는 1/S에 수렴한다.
(즉, 응용의 40%가 순차 실행부분이면, 코어를 아무리 추가해도 최대 2.5배 이상의 속도 향상은 얻을 수 없다)
728x90
반응형
'Computer Science > Operating System' 카테고리의 다른 글
[OS] 사용자 스레드(User Thread)와 커널 스레드(Kernel Thread) (0) | 2024.05.01 |
---|---|
[OS] 스레드(Thread)란? (1) | 2024.05.01 |
[OS] 클라이언트-서버 환경에서의 통신: 소켓(Sockets), 원격 프로시저 호출(RPC), 원격 메소드 호출(RMI) (0) | 2024.04.30 |
[OS] 파이프(Pipe)란? 일반 파이프(Ordinary Pipes), 지명 파이프(Named Pipes) (0) | 2024.04.29 |
[OS] 메세지 전달(Message Passing)이란? (0) | 2024.04.29 |