Я использую научный 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?
Большое спасибо!