728x90
스레드 (thread) : 프로세스 내 실행되는 흐름의 단위
- single thread : 한 프로세스에서 하나의 스레드를 가지고 실행하는 방식
- multithread : 한 프로세스에서 둘 이상의 스레드를 동시에 실행하는 방식
multiprocess & multithread
※ 공통점 : 한 프로그램이 여러 흐름으로 동시에 실행
★ 차이점
- multiprocess
1. 각 프로세스는 독립적으로 실행, 각각 별개의 메로리 차지
2. Distributed-memory 방식 (분산 메모리 방식)
3. 구현 방법 : MPI 병렬 프로그래밍
- multithread
1. 각 스레드는 독립적으로 실행되지만 한 프로세스 내 메모리 공유
2. Shared-memory 방식 (공유 메모리 방식)
3. 구현 방법 : CreateThread, 리눅스의 pthread, OpenMp 병렬 프로그래밍
☆ 암달의 법칙 : 병렬 영역의 실행 속도가 향상되어도 순차 영역으로 인해 프로그램 전체적으론 속도 개선 효과에는 한계가 있다
`#pragma omp parallel`
멀티 스레드로 실행되는 병렬 영역의 생성(Fork) & 해제 (Join)
※ Fork : 마스터 스레드가 `#pragma omp parallel` 만나면 병렬 영역 & 스레드 팀 생성
※ Join : 병렬 작업 모두 완료될 때까지 기다리며(=암시적 동기화) 완료되면 마스터 스레드는 슬레이브 스레드 소멸시킴
반응형
'CS > Linux' 카테고리의 다른 글
MPI 병렬 프로그래밍 (0) | 2023.08.30 |
---|---|
Process & Signal (0) | 2023.08.29 |
디렉토리 관리 관련 함수 (0) | 2023.08.29 |
파일 관리 관련 함수 (0) | 2023.08.29 |
Func (File System & File Input/Output) (0) | 2023.08.29 |