在 Ubuntu 上运行 Fortran 程序感觉很慢,通常不是语言本身的问题,而是编译方式、运行环境或代码实现导致的。下面按常见原因帮你梳理一下。
很多人是直接这样编译的:
gfortran main.f90 -o main
这样 默认是 -O0(无优化),程序会非常慢。
✅ 正确做法(至少加优化):
gfortran -O2 main.f90 -o main
或更快:
gfortran -O3 -march=native main.f90 -o main
-march=native会针对你的 CPU 做优化(注意换机器可能不兼容)
如果你的 Fortran 程序用到:
而你链接的是系统默认 BLAS:
gfortran main.f90 -lblas -llapack
那可能用的是未优化的参考实现,非常慢。
✅ 建议安装优化版:
sudo apt install libopenblas-dev
然后编译:
gfortran main.f90 -lopenblas
OpenBLAS 通常快 5–20 倍。
Fortran 本身很快,但:
如果你的程序是:
可以考虑:
!$omp parallel do
do i = 1, n
...
end do
!$omp end parallel do
编译:
gfortran -fopenmp -O3 main.f90 -o main
适合大规模科学计算。
Fortran 很容易写出“慢程序”的典型:
do i = 1, 1000000
write(10,*) a(i)
end do
✅ 改进方式:
write(10) a
或先存数组,最后一次写出。
Ubuntu(Linux)其实是跑 Fortran 最快的平台之一,比 Windows 快很多。
如果你觉得慢,通常是:
你可以对照一下:
-O2 / -O3write(*,*)你可以告诉我:
gfortran?ifort?)我可以直接帮你改编译参数或优化代码结构。