🤖 CPU Bound vs. I/O Bound

개발할때 개발하는 모듈이나 로직이 CPU Bound가 많은지 I/O Bound가 많은지에 대해 생각해보고 이를 고려해 개발을 하게 됩니다. 그렇다면 이 언급한 CPU Bound와 I/OBound는 무엇일까요? 1️⃣ CPU Bound CPU Bound는 일반적으로 CPU 사용 연산이 I/O 연산보다 많은 경우를 말합니다. 복잡한 수학적 연산이나 논리적 문제 해결을 할때 많이 사용됩니다. 이 경우에는 CPU에 성능에 따라 또는 CPU성능을 최대한 활용된 설계, 개발에 따라 성능이 결정됩니다. ✅ CPU Bound 작업: - 이미지 또는 비디오 처리: 픽셀 단위 연산이 필요하므로 CPU 연산이 많습니다. - 머신러닝 학습: 대량의 데이터에 대한 복잡한 계산이 필요하기에 머신러닝은 모델 학습은 CPU Bound가 많습니다. - 암호화/복호화: 복잡한 수학적 연산이 필요하기에 대부분 CPU Bound작업입니다. ⚡️ 성능 향상 방법: - 여러 CPU코어를 활용할수 있도록 병렬처리 - 캐싱 - 알고리즘 연산, 복잡도를 낮출수 있도록 코드 최적화 - 빠르고 코더 수가 많은 CPU를 추가하거나 업그레이드 - Multi processing ☝🏼☝🏼☝🏼 한가지 더 말씀드리면, 머신러닝에서 GPU를 사용하는 이유도 이 때문입니다. 딥러닝에서는 수백만에서 수조 개까지의 파라미터를 가진 신경망을 통해 연산이 이루어집니다. 이 연산이 매우 집약적이고 복잡하여 CPU만으로 처리하면 상당한 시간이 소요됩니다. 이 한계를 해결하기 위해서 병렬 연산이 효율적인, 수천개의 코어를 가진 GPU를 사용하게 된 것입니다. 2️⃣ I/O Bound 작업 수행시 CPU보다 I/O작업이 많은 경우를 의미합니다. 이 경우는 애플리케이션의 성능이 I/O속도에 의존하게 됩니다. ✅ I/O Bound 작업 - 파일 작업: 파일을 열고, 읽고, 쓰는 각종 작업 대다수가 I/O Bound입니다. - 데이터베이스 쿼리: 대용량 데이터베이스에서 데이터를 검색하는 작업은 디스크I/O가 많이 발생합니다. - 네트워크 통신: 네트워크의 데이터 송수신은 네트워크 I/O를 많이 사용하기 되어 이역시 I/O Bound작업이라 할수 있습니다. ⚡️ 성능 향상 방법: - Non-blocking, Async I/O 사용 - I/O 빈도가 낮출수있도록 코드 최적화 - Multi Threading 실제 시스템이나 모듈에서는 CPU Bound, I/O Bound 모두 일어납니다. 다만 앞서 말씀드린것과 같이 특정 작업이 많이 일어난다면 그 작업이 효율적으로 진행 될수 있도록 리소스를 할당하고 시스템을 최적화하여 설계,개발 되어야 합니다. 시스템의 요구사항과 환경을 잘 파악하고 적절히 균형을 찾아야 할것입니다. 📚 References: https://leimao.github.io/blog/Python-Concurrency-High-Level/ https://velog.io/@carrykim/분산-시스템-2-4.-Multi-Processing-vs-Multi-Threading-vs-Async

Multiprocessing VS Threading VS AsyncIO in Python

Lei Mao's Log Book

Multiprocessing VS Threading VS AsyncIO in Python

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 5월 20일 오후 12:20

 • 

저장 25조회 2,171

댓글 0

    함께 읽은 게시물

    종이 잡지 주제에 콘텐츠 커머스의 정석을 보여주고 있는 하루메쿠

    1

    ... 더 보기

    시니어 콘텐츠도 1등이 될 수 있습니다.

    롱라이프랩 뉴스레터

    시니어 콘텐츠도 1등이 될 수 있습니다.

    절대 폭락하지 않는 투자처

    ... 더 보기

    < 우리가 음악에 중독되는 이유 (feat. 도파민) >

    1. 우리는 음악이 우리의 기대를 충족하고 우리의 기대를 위반 하는 방식에서 즐거움을 얻는다.

    ... 더 보기

    < 가장 예쁜 사람이 아니라, 1등 할 사람에게 투표하라 >

    1. 유명한 경제학자 케인스는 단기 투자 전략을 미인선발대회에 비유했다.

    ... 더 보기

    < 이직을 고민하는 당신이 던져야 할 단 3가지 질문 >

    1. 커리어를 선택하는 기준은 다양하다. 일단 내가 가진 가치관이 가장 큰 영향을 준다. 남들의 시선과 판단도 무시할 수 없다. 이직 트렌드와 경향도 살펴봐야 한다.

    ... 더 보기

     • 

    댓글 1 • 저장 7 • 조회 1,038


    < 왜 어떤 제품에만 '열광적인 팬'이 생길까요? >

    1

    ... 더 보기