Я запускаю Matlab на кластере. когда я запускаю свой сценарий .m из интерактивного сеанса Matlab в кластере, мои результаты воспроизводятся. но когда я запускаю тот же скрипт из команды qsub, как часть работы с массивом вдали от моего бдительного глаза, я получаю правдоподобные, но невоспроизводимые результаты. Файлы .m делают то же самое, включая сохранение результатов в виде файлов .mat.
Кто-нибудь знает, почему запуск одного сценария дает воспроизводимые результаты, а запуск другого способа становится невоспроизводимым?
Это только проблема с воспроизводимостью или это свидетельствует о неточных результатах?
%%%%% Спасибо spuder за полезный ответ. На всякий случай, если кто-то наткнется на это и заинтересуется, вот дополнительная информация. Если вы используете более одного потока в заданиях Matlab, это может привести к краже ресурсов из других заданий, что искажает результаты. Итак, у вас есть 2 варианта: 1. Выбрать эксклюзивный доступ к узлу. Кластер, который я использую, в настоящее время не позволяет выполнять задания параллельного массива, поэтому делать это для меня было очень расточительно — я взял целый узел, но использовал его последовательно. 2. Попросите Matlab запуститься на singleCompThread. Это может увеличить время выполнения вашего скрипта, но он быстрее пропускает задания через очередь.