Я пишу программу на Фортране, основанную на первом упражнении в этой книге (стр. 34).Книга разработана как введение в высокопроизводительные вычисления.Первое упражнение просит пользователя написать код для оценки числа пи.Следуя указаниям авторов, я сделал это успешно.
program compute_pi
double precision :: x, delta_x, sum
!double precision :: S,E,MFLOPS
integer, parameter :: SLICES=10000000
sum = 0.d0 ; delta_x = 1.d0/SLICES
!call get_walltime(S)
do i=0,SLICES-1
x = (i+0.5)*delta_x
sum = sum + 4.d0 / (1.d0 + x*x)
enddo
pi = sum*delta_x
print *, pi
!call get_walltime(E)
!MFLOPS = R*N*2.d0/((E-S)*1.d6)
end program compute_pi
Далее я пытаюсь вычислить производительность в МФлопс / сек.Чтобы сделать это, я последовал примеру автора на странице 5 и написал
program compute_pi
double precision :: x, delta_x, sum
double precision :: S,E,MFLOPS
integer, parameter :: SLICES=10000000
sum = 0.d0 ; delta_x = 1.d0/SLICES
call get_walltime(S)
do i=0,SLICES-1
x = (i+0.5)*delta_x
sum = sum + 4.d0 / (1.d0 + x*x)
enddo
pi = sum*delta_x
print *, pi
call get_walltime(E)
MFLOPS = R*N*2.d0/((E-S)*1.d6)
end program compute_pi
Когда я запускаю приведенный выше код в Netbeans (IDE, которую я использую для Fortran), он возвращает
undefined reference to `get_walltime_'
Я не уверен, почему ссылка не определена.