Fortran compiler thường tạo ra code máy chạy nhanh hơn C/C++ trong cùng bài toán số học (đặc biệt là mảng, ma trận). Hầu hết các ngôn ngữ hiện đại (Python, Julia, MATLAB, R) đều gọi ngầm Fortran library khi tính toán ma trận, eigenvalue, FFT.
Ví dụ: numpy.linalg trong Python → thực chất gọi LAPACK (Fortran).
Hiện nay trình biên dịch Fortran phổ biến nhất là GFortran (GNU Fortran) – thuộc dự án GCC. Dưới đây là đoạn script cài đặt trình biên dịch Fortran cho các distro Linux phổ biến (Ubuntu/Debian, CentOS/RHEL/Fedora, Arch)
Cấp quyền và biên dịch hệ thống:
Biên dịch & chạy:
Biên dịch đoạn script sau bằng lệnh:
chmod +x ifort.sh
Cách biên dịch & chạy:
Hiện nay trình biên dịch Fortran phổ biến nhất là GFortran (GNU Fortran) – thuộc dự án GCC. Dưới đây là đoạn script cài đặt trình biên dịch Fortran cho các distro Linux phổ biến (Ubuntu/Debian, CentOS/RHEL/Fedora, Arch)
chmod +x fortran.sh
./fortran.sh
Với các dự án lớn trong khoa học tính toán, có thể kết hợp GFortran với MPI (OpenMPI, MPICH) để chạy song song trên nhiều CPU:
Biên dịch đoạn script sau bằng lệnh: chmod +x mpi.sh
./mpi.sh
Demo: Chương trình Fortran song song với MPI
- Biên dịch với wrapper mpif90 (thực chất gọi gfortran + thư viện MPI): mpif90 hello_mpi.f90 -o hello_mpi
- Khởi tạo và chạy song song với 4 tiến trình: mpirun -np 4 ./hello_mpi
- Kết quả (ví dụ):
Hello from rank 0 of 4 processes!
Hello from rank 2 of 4 processes!
Hello from rank 1 of 4 processes!
Hello from rank 3 of 4 processes!
Nếu cần hiệu năng cao hơn, có thể thử Intel oneAPI Fortran Compiler (ifort / ifx) – tối ưu rất mạnh trên CPU Intel. Ưu điểm:
+ Tối ưu cực tốt cho CPU Intel (AVX, AVX-512, SIMD)
+ Hỗ trợ song song hóa nâng cao (OpenMP, MPI, Coarray Fortran).
+ Tích hợp với MKL (Intel Math Kernel Library) để xử lý ma trận, FFT, đại số tuyến tính siêu nhanh.
+ Khả năng tương thích cao với code Fortran cũ.
chmod +x ifort.sh
./ifort.sh
Dưới đây là đoạn chương trình demo nhỏ sau khi cài Intel oneAPI Fortran Compiler (ifort / ifx). Chương trình sẽ thực hiện:
+ In ra thông báo “Hello Intel oneAPI”.
+ Thực hiện nhân ma trận (benchmark nhỏ) để kiểm tra sức mạnh tính toán.
+ Với ifort (truyền thống)
ifort demo_oneapi.f90 -o demo_ifort
./demo_ifort
+ Với ifx (LLVM-based)
ifx demo_oneapi.f90 -o demo_ifx
./demo_ifx