我是 fortran 和 gfortran 的新手。我了解到整个表达式数组是并行计算的,但我发现计算只发生在我计算机的一个核心中。
我使用以下代码:
program prueba_matrices
implicit none
integer, parameter :: num = 5000
double precision, dimension(1:num,1:num) :: A, B, C
double precision, dimension (num*num) :: temp
integer :: i
temp = (/ (i/2.0, i=1,num*num) /)
A = reshape(temp, (/ num, num/) )
B = reshape(temp, (/ num, num/) )
C = matmul(A , B)
end program prueba_matrices
我是这样遵守的:
gfortran prueba_matrices.f03 -o prueba_gfortran
而且,观察 gnome-system-monitor 实时生成的图表,我可以看到只有一个核心在工作。如果我用计算代替该行
C = matmul(A , B)
为了
C = A * B
它产生相同的行为。
我究竟做错了什么?