Оптимизация компилятора Fortran - PullRequest
0 голосов
/ 10 марта 2020

Я работал с кодом Fortran, написанным в проекте Visual Studio 2015. С тех пор я всегда компилировал и запускал код, используя Visual Studio 2015 на своем ноутбуке. Для моделирования требуется около 2 часов до завершения sh (для выполнения кода до завершения) с использованием персонального компьютера Dell с процессором Intel® (Core ™ i7-8650U-1.90GHz-4 core-BS: 2112 МГц, ) и 16 ГБ ОЗУ (DDR4 2400 МГц) с использованием Windows 10 (Enterprise, 64 бит).

Недавно я начал использовать среду высокопроизводительных вычислений (HP C) для компиляции и запуска моего кода на Fortran. Код не распараллелен, и это не совсем возможно (или просто) в моем приложении. Очевидно, что HP C имеет лучшие характеристики, чем мой собственный ноутбук, но я был удивлен, увидев, что HP C заняла 04:10:23 часа, чтобы завершить sh ту же симуляцию, которая заняла 2 часа для моего ноутбука. Обе платформы используют только одно ядро, поскольку распараллеливание не вариант.

Не могли бы вы предложить мне более быстрый исполняемый код (по крайней мере, в то же время, что и у моего ноутбука-P C), как у некоторых? советы по компиляции или варианты? Я понял, что включение оптимизации компилятора в Visual Studio значительно (примерно в 2 раза) сокращает время моделирования. Поможет ли компиляция кода с использованием указанных c параметров для кода на Фортране?

Я пытался найти в Интернете варианты компиляции Intel, но для новичка это кажется действительно сложным. Я действительно не мог найти дорожную карту, чтобы следовать, где искать. Я был бы очень признателен, если бы вы могли дать мне некоторые рекомендации или указания, на которые стоит обратить внимание. Я могу предоставить дополнительную информацию, если это необходимо. Большое спасибо за ваше время.

Вот код, который я использую для компиляции:

#=============< COMPILER >=============================#
FC   = ifort
EXC = DL0D

#=============< SOURCE FILES >=========================#
SRCS = 1Main.for \
OBJS=$(SRCS:%.for=%.for)

#==============< OBJECTS FILES >=======================#
OBJECTS = Main.o \

#lsode_reduced.o utility.o
#======================================================#
COMMON =   
LIBES = -lm
FFLAGS =  -extend-source 132 -heap-arrays -O2 -g -traceback  

$(EXC) : $(OBJS)
    $(FC) $(FFLAGS) -o $@ $(OBJS)
    $(RM) ./*.o ./*~

$(OBJECTS): $(COMMON)

clean:
    rm -f $(EXC) $(OBJECTS)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...