Компиляция с помощью gfortran вместо ifort

У меня есть программа, оптимизированная для ifort, но вместо этого я хотел бы скомпилировать ее с помощью gfortran. Вот предоставленные флаги:

FCFLAGS=  -Vaxlib -CB -mcmodel=large -O -openmp -DOMP

Я просмотрел записи руководства для обоих, чтобы попытаться найти соответствующие параметры, но я не смог ничего найти (кроме -openmp для -fopenmp, о котором я уже знал).


person Ross    schedule 11.11.2012    source источник


Ответы (1)


Вот она, таблица эквивалентности опций:

ifort          gfortran         Commentary
-----------------------------------------------------------------------
-Vaxlib                         Enables old VAX library compatibility
                                (should not be necessary with gfortran
                                 and newer ifort versions)
-CB            -fbounds-check   Enables array bounds check at run-time
-mcmode=large  -mcmodel=large   Enables large memory model
-O             -O2              Enables optimisaiton
-openmp        -fopenmp         Enables OpenMP support
-DOMP          -DOMP            Preprocessor option (defines the OMP symbol)

Обратите внимание, что включение проверки границ и модели с большой памятью замедлит выполнение кода. Также обратите внимание, что только -O обеспечивает различные уровни оптимизации с ifort (эквивалентно -O2) и с gfortran (эквивалентно -O1). Также обратите внимание, что ifort оптимизирует гораздо более агрессивно, чем gfortran. Возможно, вам потребуется предоставить дополнительные параметры для точной настройки последнего, чтобы достичь производительности на уровне ifort.

person Hristo Iliev    schedule 12.11.2012
comment
Есть ли где-нибудь полная таблица эквивалентности? - person gregmacfarlane; 07.11.2014
comment
@gregmacfarlane, я так не думаю. Но можно построить его, прочитав руководства. - person Hristo Iliev; 08.11.2014