최근까지 np.dot (A, B)와 같이 numpy 메소드를 사용했을 때까지는 단일 코어 만 사용되었습니다. 그러나, 오늘부터 내 리눅스 머신의 모든 8 코어가 문제가되고있다.Numpy가 갑자기 모든 CPU를 사용합니다.
최소한의 작업 예 :
import numpy as np
N = 100
a = np.random.rand(N,N)
b = np.random.rand(N,N)
for i in range(100000):
a = np.dot(a,b)
내 다른 노트북에 그것은 단일 코어에 모두 잘 작동합니다. 이것은 새로운 라이브러리로 인해 발생할 수 있습니까?
오늘 아침에 저는 pipl을 통해 matplotlib와 cairocffi를 업데이트했지만 그게 전부입니다.
단일 코어로 돌아가는 방법에 대한 아이디어가 있으십니까?
편집 :
np.__config__.show()
을 실행
나는 다음과 같은 출력
openblas_info:
libraries = ['openblas', 'openblas']
define_macros = [('HAVE_CBLAS', None)]
language = c
library_dirs = ['/usr/local/lib']
openblas_lapack_info:
libraries = ['openblas', 'openblas']
define_macros = [('HAVE_CBLAS', None)]
language = c
library_dirs = ['/usr/local/lib']
lapack_opt_info:
libraries = ['openblas', 'openblas']
define_macros = [('HAVE_CBLAS', None)]
language = c
library_dirs = ['/usr/local/lib']
blas_mkl_info:
NOT AVAILABLE
blas_opt_info:
libraries = ['openblas', 'openblas']
define_macros = [('HAVE_CBLAS', None)]
language = c
library_dirs = ['/usr/local/lib']
감사합니다. 리눅스 셸에서 export 명령을 실행하고 python으로 test.py를 호출하여 코드를 호출했습니다. 그러나 그것은 아무 것도 바뀌지 않았습니다. 어떤 도움이된다면, np .__ config __. show()로 답을 갱신했습니다. – physicsGuy
OS 모듈을 사용하여 선호도를 설정해보십시오. 'os.system ("taskset -p 0x1 % s"% os.getpid())'와 같은 코드를 실행 한 다음 코드를 실행하십시오 (참고로 링크 된 게시물에 있습니다). –
다중 처리가 실제로 문제가되는 경우 openBLAS 대신 ATLAS를 사용해 볼 수도 있습니다. 이것은하기 쉽습니다. numB를 openBLAS 대신 ATLAS를 사용하는 방법에 대한 자세한 내용은 게시물을 참조하십시오. –