Я рассчитал время, потраченное функцией MATMUL
Фортрана с различными размерами умножения (32 × 32, 64 × 64, ...), и у меня есть вопросы по поводу результатов.
ЭтоРезультаты:
SIZE ----- TIME IN SECONDS
32 ----- 0,000071
64 ----- 0,000032
128 ----- 0,001889
256 ----- 0,010866
512 ----- 0,043
1024 ----- 0,336
2048 ----- 2,878
4096 ----- 51,932
8192 ----- 405,921856
Я думаю, время должно увеличиться в 8 раз (m * 2 * n * 2 * k * 2).Я не знаю, так ли это должно быть.Если так, кто может сказать, почему это не так?
Кроме того, мы видим увеличение в 18 раз с умножением 2048 на 4096. Может ли кто-нибудь сказать мне, почему?
Я измерил время с CALL CPU_TIME()
от Fortran и CALL DATE_AND_TIME()
от Fortran, и оба дали очень похожие результаты.
Мой процессор - процессор AMD Phenom (tm) II X4 945 с 4 ядрами