У меня есть сценарий python, который обрабатывает файлы с датчиками из файла md4 и выводит их на изображение. Поэтому я использую библиотеки libs asammdf и matplotlib - они имеют зависимость от numpy.
На моем windows главном компьютере там, где я разработал сценарий, все работает отлично - все потоки используются и скорость сценария в порядке. Но на других устройствах, где сценарий также должен запускаться для обработки большего количества файлов, сценарий использует только одно ядро с несколькими потоками при работе в Ubuntu 16.04 с собственной скомпилированной python 3.7.0:
Я много искал и пробовал все, что есть в sugessted - некоторые из них немного старше Ubuntu 12 ..:
https://shahhj.wordpress.com/2013/10/27/numpy-and-blas-no-problemo/
Импорт многопроцессорной поддержки scipy breaks в Python
Почему многопроцессорная обработка использует только одно ядро после импорта numpy?
Машины linux установлены новые - установлены только python3 .7, pip3 и python libs. Я даже скачал новейший образ Ubuntu 19.10, где предустановлен python3 .7.5. Что я сделал:
- пробовал os.sched_setaffinity
- пробовал os.system ("taskset -p 0xff% d"% os.getpid ())
текущая маска сродства pid 20534: ff
новая маска сродства pid 20534: ff
- установила ATLAS и задала альтернативы, но те, которые, кажется, не приняты ..
на моей windows машине у меня есть: python 3.7.1 и выход для >>> import numpy; numpy.show_config()
blas_mkl_info: NOT AVAILABLE blis_info: NOT AVAILABLE openblas_info:
library_dirs = ['C:\\projects\\numpy-wheels\\numpy\\build\\openblas']
libraries = ['openblas']
language = f77
define_macros = [('HAVE_CBLAS', None)] blas_opt_info:
library_dirs = ['C:\\projects\\numpy-wheels\\numpy\\build\\openblas']
libraries = ['openblas']
language = f77
define_macros = [('HAVE_CBLAS', None)] lapack_mkl_info: NOT AVAILABLE openblas_lapack_info:
library_dirs = ['C:\\projects\\numpy-wheels\\numpy\\build\\openblas']
libraries = ['openblas']
language = f77
define_macros = [('HAVE_CBLAS', None)] lapack_opt_info:
library_dirs = ['C:\\projects\\numpy-wheels\\numpy\\build\\openblas']
libraries = ['openblas']
language = f77
define_macros = [('HAVE_CBLAS', None)]
на моих linux машинах: python 3.7.0 и numpy config:
blas_mkl_info:
NOT AVAILABLE
blis_info:
NOT AVAILABLE
openblas_info:
libraries = ['openblas', 'openblas']
library_dirs = ['/usr/local/lib']
language = c
define_macros = [('HAVE_CBLAS', None)]
blas_opt_info:
libraries = ['openblas', 'openblas']
library_dirs = ['/usr/local/lib']
language = c
define_macros = [('HAVE_CBLAS', None)]
lapack_mkl_info:
NOT AVAILABLE
openblas_lapack_info:
libraries = ['openblas', 'openblas']
library_dirs = ['/usr/local/lib']
language = c
define_macros = [('HAVE_CBLAS', None)]
lapack_opt_info:
libraries = ['openblas', 'openblas']
library_dirs = ['/usr/local/lib']
language = c
define_macros = [('HAVE_CBLAS', None)]
В моем коде нет многопоточных логи c или чего-то подобного - все многопоточные логи c обрабатываются внутри Я использую библиотек. Я надеюсь, что кто-то может помочь. Я думаю, что это очень странно, у меня все еще есть проблемы такого рода, так много лет спустя из приведенных выше вопросов я связался.
РЕДАКТИРОВАТЬ: причина вопроса была удалена: я проверил в b ios, что все ядра и гиперпоточность активированы