У меня есть серийный код на Фортране, который отлично работает. После того, как я скомпилировал тот же код с помощью ifort -parallel и запустил его, он дает неправильные результаты и переполнение. Я ожидаю, что с флагом «-parallel» компилятор Intel способен выбирать циклы, которые безопасны для распараллеливания, и я должен получить те же результаты, что и для последовательного кода, чего не произошло. Еще более странное поведение состоит в том, что я пошел дальше и закрыл все параллели циклов do в моем коде, используя! DEC $ NOPARALLEL, скомпилировал код, используя ifort -parallel, чтобы убедиться, что ни один из циклов не был распараллелен и затем запущен. Удивительно, но я получил те же неправильные результаты и переполнение, хотя последнее действие должно быть точно эквивалентно последовательному коду.
Кто-нибудь может объяснить это поведение или это просто недостаток компилятора Intel.
Привет.