Динамическое управление многопоточностью на основе mkl - PullRequest
0 голосов
/ 22 мая 2018

Я использую научный Python от Anaconda, где numpy компилируется с библиотекой mkl.

При попытке многопроцессорной обработки я хочу ограничить использование numpy одним ядром.

Я знаюя могу установить переменные окружения 'MKL_NUM_THREADS', 'NUMEXPR_NUM_THREADS' и 'OMP_NUM_THREADS' в '1' (используя os.environ).Тем не менее, это приведет к тому, что numpy будет использовать одно ядро ​​вокруг моего кода, и я хочу иметь возможность управлять этим динамически.

Я столкнулся с пакетом Python 'mkl' (распространяется как часть Anaconda),в котором существует функция "set_num_threads (n)".Я попробовал это, но это приводит к странному поведению - для операций с линейной алгеброй кажется, что достаточно большие матрицы приводят к тому, что numpy возобновляет многопоточность.

Может кто-нибудь предложить решение / привести / что-нибудь относительно динамического управления многопоточностью numpy / mkl?

Большое спасибо!

...