Ошибка нехватки памяти. Как найти? Как решить? - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь запустить код Fortran на Cray. Работает нормально при компиляции под gnu или intel. Когда я пытаюсь запустить его как скомпилированный в Cray Fortran, он умирает с ошибкой «OOM killer». Я понятия не имею, откуда в коде ошибка. Я понятия не имею, почему компилятор Cray будет иметь проблемы, когда другие компиляторы не имеют. Прежде всего, я пробовал различные переключатели компилятора и (не) активацию "огромных страниц", но все безрезультатно. Как я могу найти эту ошибку? Еще лучше, как я могу решить это?

1 Ответ

0 голосов
/ 08 ноября 2018

Если кому-то интересно, я воспользовался советом Владимира Ф. и начал отключать части кода, чтобы найти проблему. Мне повезло, что это не заняло столько времени. Есть раздел кода, где у меня есть размещаемые целочисленные массивы, над которыми я работаю в цикле. Не ясно, каким должен быть размер массивов во время выполнения. Поэтому я выделил их для некоторого размера, а затем, когда цикл повторяется, если они выходят за пределы их границ, я перераспределяю их, увеличивая размер с некоторым приращением, равным 100 в моем случае по умолчанию. Я не знаю, как работает компилятор Cray, но это привело к слишком большому количеству перераспределений для обработки и сообщило об ошибке как об ошибке нехватки памяти. Я увеличил приращение до 500 целых чисел, и это решило проблему. Если кто-то хочет пролить свет на то, что на самом деле происходит, я был бы более чем рад услышать об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...