파이썬 성능 향상을 위해 고려해야 할 파이썬의 특징

Oni·2023년 5월 21일
0

Intro

특정 코어가 작업을 끝내는 데 걸리는 시간이 병목이 되는 지점까지는 코어 수를 늘릴수록 성능을 더 끌어올릴 수 있다.

멀티코어 아키텍처는 초당 가능 연산 수를 늘려주지만, 이를 제대로 활용하는 코드를 작성하기는 쉽지 않다.


🔎암달의 법칙

  • CPU에 코어를 더 넣는다고 해서 프로그램의 실행 시간이 무조건 단축되지 않는 이유는 암달의 법칙(Amdahl's law)때문이다.
  • 멀티코어에서 작동하도록 설계된 프로그램일지라도 하나의 코어에서 실행해야 하는 루틴이 존재하고, 이 루틴이 코어를 더 투입했을 때 기대할 수 있는 최대 성능 향상치의 병목으로 작용한다는 법칙

🔎GIL (global Interpreter Lock)

이미지출처 : https://blog.devgenius.io/python-do-you-really-understand-gil-8944fcd773cd

  • 파이썬에서는 GIL때문에 여러 코어를 활용하기 어려움
  • GIL은 현재 사용 중인 코어가 몇 개든지 한 번에 하나의 명령만 실행하도록 강제됨.
  • 파이썬에서 동시에 여러 개의 코어에 접근해도 한 번에 실행할 수 있는 명령은 1개이다.

💡 해결방법

  • multiprocessing 모듈 사용
  • numpy 혹은 numexpr, 사이썬 기술 이용
  • 분산 컴퓨팅 모델 사용

심화내용


자료 출처

고성능파이썬(한빛미디어, 미샤고렐릭&이안 오스발트)

profile
데이터 분석/엔지니어링/ML에 관한 기록

0개의 댓글