MATLAB 및 NumPy에서 EIG 기능을 프로파일 링하여 Macbook Pro (2GHz, Quad core i7 OS X 10.6 실행)의 성능을 비교해 보았습니다. NumPy EIG는 MATLAB에 비해 상당히 느린 것으로 보입니다. NumPy와 주위 19.5 초/간부있어Numpy EIG는 Mac OS X 10.6에서 MATLAB EIG보다 약 4 배 느립니다. 내가 도대체 뭘 잘못하고있는 겁니까?
s = '''\
x = numpy.random.random((2000,2000));
numpy.linalg.eig(x);
'''
t = timeit.Timer(stmt=s,setup="import numpy")
result = t.repeat(repeat=5,number=10)
result
Out[22]:
[197.1737039089203,
197.34872913360596,
196.8160741329193,
197.94081807136536,
194.5740351676941]
:
는 여기에 내가 NumPy와에 프로파일 코드입니다.
여기 MATLAB에서 동일한 코드이다 :
clear all
tic;
for i = 1:50
x = rand(2000,2000);
eig(x);
end
toc;
Elapsed time is 267.976645 seconds.
MATLAB에 주위 5.36 초/간부 있다고.
이것은 JIT 성능에 크게 의존해서는 안되는 것처럼 간단합니다. BLAS 라이브러리와 BLAS 라이브러리에 액세스하는 루틴으로 요약 할 수 있습니다. MATLAB은 Mac에서 Accelerate Framework를 사용합니다.
NumPy도 Macbook Pro에서 Accelerate Framework BLAS를 사용하는 것처럼 보입니다. 여기
그래서 여기에 NumPy와의 사람에 대한 내 질문 (모두 MacPorts를에서 설치) numpy.show_config()
numpy.show_config()
lapack_opt_info:
extra_link_args = ['-Wl,-framework', '-Wl,Accelerate']
extra_compile_args = ['-msse3']
define_macros = [('NO_ATLAS_INFO', 3)]
blas_opt_info:
extra_link_args = ['-Wl,-framework', '-Wl,Accelerate']
extra_compile_args = ['-msse3', '-I/System/Library/Frameworks/vecLib.framework/Headers']
define_macros = [('NO_ATLAS_INFO', 3)]
내가 파이썬 2.7.2와 NumPy와 1.6을 사용하고 출력입니다 : 왜 NumPy와이 인스턴스에 느린 ? NumPy를 설치하는 동안 최적화를 생략 했습니까?
또한, r.e. 아니. NumPy와 MATLAB은 모두 EIG를 실행할 때 내 컴퓨터에서 사용할 수있는 4 개의 코어를 모두 사용합니다. 그러나 NumPy가 실행 중일 때로드는 MATLAB이 실행될 때보 다 조금 더 낮습니다 (아직 정량화되지 않았습니다). – KartMan