Компилятор Intel Fortran "-параллель" не работает - PullRequest
1 голос
/ 07 октября 2009

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

Кто-нибудь может объяснить это поведение или это просто недостаток компилятора Intel.

Привет.

Ответы [ 2 ]

1 голос
/ 11 октября 2009

Ответы на этот идентичный вопрос были даны на форуме Intel Fortran: http://software.intel.com/en-us/forums/topic/269743

РЕДАКТИРОВАТЬ: я изменил ссылку, так как, как указано в комментарии, исходная ссылка теперь не работает.

1 голос
/ 07 октября 2009

Извините, что говорю это, но вряд ли это проблема компилятора Intel, это довольно хороший компилятор (нет, я не работаю на Intel! Но я использую их компиляторы).

Да, я могу объяснить такое поведение, но без вашей программы все, что я предлагаю, будет неверным.

...