У меня есть программа на Python, которая включает в себя ядро C ++.Он написан параллельно, поскольку он очень дорогой в вычислительном отношении, и в настоящее время я заставляю его работать на удаленном сервере на платформе Ubuntu 16.04.
Проблема, с которой я сталкиваюсь, заключается в том, что при определенном количестве циклов(скажем, 2000) для моего тестового примера, он внезапно зависает, не выдавая сообщений об ошибках или чего-либо еще.Я обнаружил часть кода, где он останавливается и является функцией Python, которая не имеет функции for цикла (поэтому я предполагаю, что она не застряла в цикле).Я попытался просто прокомментировать функцию, где она застревает в коде, так как она выполняет незначительные вычисления, и теперь, при точно таком же количестве циклов, она застревает немного вперед, на этот раз внутри написанной части C ++.Я начинаю предполагать, что есть вероятность проблемы с памятью, связанной с сервером.
Выполнение htop
из терминала, когда код застрял. Я вижу, что модули, участвующие в вычислениях, полностью загружены, так как они в настоящее время участвуют в некоторых неизвестных вычислениях.Кроме того, память, участвующая в процессе (по крайней мере, когда процесс уже застрял), не полностью занята, так что это также может быть проблемой ОЗУ.
Я также попытался резко сократить количество выходных данных, записываемых в каждом цикле (что, я признаю, где согласовано по размеру), но ничего.При оптимальном количестве процессоров для достижения критической точки в 2000 циклов требуется около 20 минут, поэтому проблема не может быть легко воспроизведена.
Это первый раз, когда я сталкиваюсь с подобными проблемами,Что еще я могу сделать, чтобы выделить проблему?
Спасибо за ответ