NumPy를 가져올 때 단일 코어에서 다중 처리가 중단되는 이유
joblib를 사용하여 CPU 집약적인 루프를 병렬화하려고 하면 다음과 같은 문제가 발생할 수 있습니다. 모든 작업자 프로세스가 동일한 코어에 할당되어 성능 향상이 없는 문제입니다. 이는 NumPy를 포함한 특정 Python 모듈이 가져올 때 핵심 선호도를 조작하기 때문에 발생합니다.
근본 원인:
코어 선호도를 방해하는 다중 스레드 OpenBLAS 라이브러리에 대한 NumPy 링크 설정.
해결책:
이 문제를 해결하려면 다음 명령을 사용하여 작업 선호도를 재설정하십시오.
<code class="python">os.system("taskset -p 0xff %d" % os.getpid())</code>
가져온 후 이 줄을 배치하세요. 문제가 발생한 모듈. 이렇게 하면 사용 가능한 모든 코어에서 프로세스가 강제로 실행됩니다.
대체 솔루션:
위 내용은 NumPy를 가져올 때 단일 코어에서 다중 처리가 중단되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!