이 블로그 검색

2022년 9월 12일 월요일

https://jeremyko.github.io/ 를 만들었다

https://jeremyko.github.io/

그 동안 코드 편집 하는 게 너무 번거로웠는데 markdown 이 지원되는 github pages 가  좋은거 같다 

2022년 9월 2일 금요일

(python) docker container 에서 scipy, numpy 사용 시 thread 과다 생성 문제 (incorrect cpu count)

개발 중인 python 프로젝트에서 scipy 패키지 interpolate 를 사용하는 코드가 있는데, docker 기반 클라우드 환경에서 실행하니 먹통이 되고 멈추는 현상이 발생 했다. 하지만, 이 코드를 내 랩탑 에서 돌려보면, 정상 동작한다.

문제의 원인을 찾아보니, docker container 를 생성하면서 할당한 cpu 개수와 실제 머신의 전체 CPU 개수 불일치로 인한 문제였다. 이 현상에 대해 정리 해 본다.


  • docker container 기반에서 OpenBLAS, MLK 를 사용하는 numpy, scipy 등의 패키지 내부에서 과도한 thread 생성이 안되게 주의 해야 한다.
  • 비록 명시적으로 thread 를 사용하지 않았어도, numpy, scipy 내부적으로는 multi thread 가 생성 된다는 것을 알아둘 필요가 있다.
  • 코드가 동작하는 환경을 분석하고, 성능 문제가 있는 경우에만 시도한다


좀 더 자세히 알아보면,