Отладка параллельной программы Python в прерывищем снаLinux

Ответить
Anonymous
 Отладка параллельной программы Python в прерывищем сна

Сообщение Anonymous »

У меня есть программа MPI4py, которая хорошо работает с MPIEXEC -NP 30 Python3 -o myscript.py при 100% использования ЦП на каждом из 30 ЦП. Это должно быть хорошо, у меня есть 64 ядра с 4 единицами каждый, NPROC показывает 256 . Нагрузка составляет около 128 (8x16). < /P>
Ничто иное не работает, большая часть терабайта ОЗУ бесплатна, но большинство моих процессов-на 25-30% использования ЦП в состоянии S (прерывистый сон). Мой код MPI4PY - это цикл с первым BCACL значения, рассчитанного узлом Rank 0, а затем в два раза за разброс и команду сбора. В промежутке код, работающий на каждом узле, использует ONNX, Numba, Tensorflow.keras и другие библиотеки (с OpenMPI_NUM_THREADS = 1 и конфигурация ONNX, которые избегают дальнейшей параллелизации). Я не использую графические процессоры (все настроено на использование процессоров). < /P>
Это не ясно для меня (по крайней мере, я не могу найти много онлайн), как сузить, где в моей программе Python - выполнение MPI. Обычно я запускал бы Python -c Cprofile -o Prof , но я не уверен, как сделать это с помощью mpiexec, чтобы получить разумные (некоменные) выходные файлы? Есть ли что -то подобное для определения того, где в программе Python тратится время сна?

Подробнее здесь: https://stackoverflow.com/questions/797 ... ible-sleep
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»