Я работал с кодом 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)