在 Ubuntu 上“优化 Fortran”通常可以从编译选项、系统环境、代码层面、并行化、性能分析几个方面入手。下面按实用程度给你一个较完整的优化指南。
Ubuntu 常见 Fortran 编译器:
安装 gfortran:
sudo apt update
sudo apt install gfortran
安装 Intel 编译器(推荐科学计算):
# 官网下载 oneAPI base + HPC toolkit
gfortran -O2 -o prog prog.f90
推荐生产环境:
gfortran -O3 -march=native -funroll-loops -ftree-vectorize -o prog prog.f90
说明:
-O3:高级优化-march=native:针对当前 CPU 优化-funroll-loops:循环展开-ftree-vectorize:向量化(常自动开启)-ffast-math -fno-errno
⚠️ 不适合需要严格 IEEE 浮点结果的程序
ifx -O3 -xHost -ipo -vec -o prog prog.f90
避免:
do i = 1, n
a(i) = b(i) + c(i)
end do
推荐:
a = b + c
❌ 慢:
do j = 1, n
do i = 1, m
a(i,j) = ...
end do
end do
✅ 快:
do i = 1, m
do j = 1, n
a(i,j) = ...
end do
end do
implicit none
allocate 而不是静态大数组(可控内存)gfortran -O3 -fopenmp prog.f90 -o prog
代码示例:
!$omp parallel do
do i = 1, n
a(i) = b(i)**2
end do
!$omp end parallel do
sudo apt install openmpi-bin libopenmpi-dev
mpif90 prog.f90 -o prog
sudo apt install linux-tools-common
perf stat ./prog
gfortran -pg prog.f90 -o prog
./prog
gprof prog gmon.out > report.txt
vtune -collect hotspots ./prog
sudo cpufreq-set -g performance
echo 1024 | sudo tee /proc/sys/vm/nr_hugepages
sudo apt upgrade
普通科学计算:
gfortran -O3 -march=native -funroll-loops -fopenmp prog.f90 -o prog
高性能计算:
ifx -O3 -xHost -ipo -qopenmp prog.f90 -o prog
如果你愿意,可以:
我可以直接帮你针对性优化代码和编译参数。