Я был запуск программы буквально сотни раз, но в последнее время установлено, что один набор входных параметров приводит следующее сообщение об ошибке:Ошибка при помощи parfor в MATLAB
In DElambda at 116
In parallel_function>make_general_channel/channel_general at 879
In remoteParallelFunction at 31
??? Error using ==> parallel_function at 598
The session that parfor is using has shut down
Error in ==> CreateCurve at 86
parfor j=1:10
??? The client lost connection to an unknown lab.
This might be due to network problems, or the interactive matlabpool job might have errored. This is
causing: java.lang.OutOfMemoryError: GC overhead limit exceeded
Это происходит, когда я установил минимальные и максимальные значения для в поле поиска параметров до min [0; 0] и max [1,5; 1,5] и установите размер популяции до 10k (это дифференциальная эволюция). Я не затронул другие параметры в любой момент. Всякий раз, когда я пытаюсь запустить его с указанными выше параметрами, я получаю ошибку выше.
Однако, когда я отбрасываю размер популяции до 1k, он сходится (к неправильному ответу из-за недостаточного поиска). Альтернативно, когда я использую размер популяции 10k с любым другим набором параметров, которые я пробовал, он отлично работал и сходится к правильному решению?
Кажется очень странным?
В настоящее время я повторно запустил набор параметров проблемы, используя цикл for, а не цикл parfor (и отключенный matlabpool), чтобы убедиться, что это работает лучше. К сожалению, это очень много времени, поэтому я не буду знать результаты на некоторое время.
В то же время может ли кто-нибудь объяснить, что вызывает эту ошибку? И/или скажите, как отлаживать параллельный код?
Просто для того, чтобы добавить код, сработал с набором параметров rogue, когда я использовал вместо parfor! Так что мне действительно нужно найти способ отладки в параллельной среде, чтобы я мог изолировать и исправить эту ошибку. Использование вместо parfor слишком медленное!
Как ошибка 'java.lang.OutOfMemoryError: превышение верхнего предела GC' говорит, что это из памяти. Не видя кода, трудно сказать, почему эти конкретные входные данные вызывают нехватку памяти. – Oleg
Я счастлив опубликовать код его довольно большой, хотя! Но хотелось бы узнать, как отлаживать такие проблемы. – Bazman