Как найти номер по умолчанию OPENBLAS_NUM_THREADS - PullRequest
0 голосов
/ 26 марта 2020

Я работаю на сервере с 2 сокетами, по 10 ядер в каждом, по 8 потоков на ядро. Таким образом, у меня есть 160 доступных процессоров.

У меня есть 2 задачи:

1 - Выполнить 100 python команд параллельно с помощью subprocess.Popen (). Но я столкнулся с ошибкой: "OpenBLAS blas_thread_init: RLIMIT_NPRO C 4096 current, 3959940 max". Чтобы это исправить, у меня есть 2 варианта:

  • В зависимости от этого ({ ссылка }), я рассчитал максимальное количество ядер, которое я могу использовать, не меняя «OPENBLAS_NUM_THREADS», и доходит до 25 или меньше. Используя это уравнение: X (160 + 1) +2 <= 4096. Я попробовал 20 процессов и обнаружил, что сервер может обрабатывать 5 выходов в секунду. </li>
  • Или изменить «OPENBLAS_NUM_THREADS» на 1, используя «export OPENBLAS_NUM_THREADS = 1», тогда я могу использовать около 100 процессов. Результатов было 2 выхода / сек c. Очевидно, что второй вариант лучше, так как я могу создать 200 выходов / se c, используя второй вариант, против 100 выходов / se c, используя первый вариант.

2- Вторая задача, где я хочу запустить другой процесс java, который занимает только один процесс, но я заметил, что производительность очень плохая! это может быть связано с изменением OPENBLAS_NUM_THREADS на 1. Я изменил его на большее число (100) и все еще жду результата. Я думаю, что производительность будет лучше.

Мой вопрос, как я могу проверить текущее значение OPENBLAS_NUM_THREADS и сбрасывается ли это значение при закрытии сеанса? Кроме того, я хотел бы, чтобы кто-то более подробно рассказал о OPENBLAS_NUM_THREADS, поскольку я новичок в этом, и если мои предположения верны выше.

...