Dev Language/Python

[파이썬_4] #13. CPU Bound vs IO Bound

ydin 2021. 12. 8. 00:32
  • 공부한 날짜: 2021.12

 

  • Concurrency
  • CPU Bound vs I/Bound
  • 작업 목적에 따라서 적절한 동시성 라이브러리 선택이 중요하다 
CPU Bound  I/O Bound
프로세스 진행
-> CPU 속도에 의해 제한(결정)
-> 행렬 곱, 고속 연산, 압출 파일, 집합 연산 등
파일쓰기, 디스크 작업, 네트워크 통신, 시리얼 포트 송수신
-> 작업에 의해서 병목에 따라 수행시간이 결정됨
 CPU의 연산 위주 작업 시 사용. CPU 성능에 따라 달라진다 CPU 성능 지표가 수행시간 단축에 크게 영향을 미치지 않는다 

 

 

  • 최종 비교
Multiprocessing Threading AsyncIO
Multiple Processes, 고가용성(CPU) Utilization -
> CPU-Bound
-> 10개의 요리사, 10개의 요리 
Single(Multi) process, Multiple threads, OS decides task switching
-> Fast I/O Bound

 -> 1개의 부엌, 10명의 요리사, 10명의 요리 
Single process, Single thread, cooperative multitasking, tasks cooperatively decides switching
-> Slow I/O Bound
-> 1개의 부엌, 1명의 요리사, 10개의 요리