January 14 2011 11:26:43.090 AM TIMER_CPU_TIME FORTRAN90 version. Demonstrate the use of the CPU_TIME timer. CPU_TIME is a FORTRAN 95 built in routine. call cpu_time ( reading ) TEST01 Time the FORTRAN90 RANDOM_NUMBER routine: call random_number ( x(1:n) ) Data vectors will be of minimum size 1 Data vectors will be of maximum size 1048576 Number of repetitions of the operation: 5 Timing results: Vector Size Rep #1 Rep #2 Rep #3 Rep #4 Rep #5 Min Ave Max 1 0.000013 0.000001 0.000001 0.000000 0.000001 0.000000 0.000003 0.000013 2 0.000000 0.000000 0.000002 0.000000 0.000001 0.000000 0.000001 0.000002 4 0.000000 0.000000 0.000001 0.000000 0.000001 0.000000 0.000000 0.000001 8 0.000001 0.000000 0.000001 0.000000 0.000001 0.000000 0.000001 0.000001 16 0.000000 0.000001 0.000000 0.000001 0.000001 0.000000 0.000001 0.000001 32 0.000001 0.000002 0.000001 0.000001 0.000001 0.000001 0.000001 0.000002 64 0.000001 0.000002 0.000001 0.000001 0.000001 0.000001 0.000001 0.000002 128 0.000003 0.000003 0.000002 0.000003 0.000002 0.000002 0.000003 0.000003 256 0.000005 0.000005 0.000005 0.000005 0.000005 0.000005 0.000005 0.000005 512 0.000011 0.000009 0.000009 0.000010 0.000009 0.000009 0.000010 0.000011 1024 0.000018 0.000018 0.000017 0.000017 0.000017 0.000017 0.000017 0.000018 2048 0.000037 0.000035 0.000035 0.000034 0.000035 0.000034 0.000035 0.000037 4096 0.000075 0.000068 0.000069 0.000069 0.000067 0.000067 0.000070 0.000075 8192 0.000150 0.000137 0.000138 0.000131 0.000131 0.000131 0.000137 0.000150 16384 0.000284 0.000261 0.000263 0.000261 0.000262 0.000261 0.000266 0.000284 32768 0.000571 0.000523 0.000522 0.000521 0.000521 0.000521 0.000532 0.000571 65536 0.001149 0.001045 0.001051 0.001049 0.001046 0.001045 0.001068 0.001149 131072 0.002318 0.002100 0.002086 0.002100 0.002091 0.002086 0.002139 0.002318 262144 0.004641 0.004198 0.004185 0.004173 0.004201 0.004173 0.004280 0.004641 524288 0.009233 0.008392 0.008376 0.008349 0.008374 0.008349 0.008545 0.009233 1048576 0.018548 0.016771 0.016743 0.016775 0.016772 0.016743 0.017122 0.018548 TEST02 Time vectorized operations: y(1:n) = x(1:n) y(1:n) = PI * x(1:n) y(1:n) = sqrt ( x(1:n) ) y(1:n) = exp ( x(1:n) ) Data vectors will be of minimum size 4096 Data vectors will be of maximum size 4194304 Number of repetitions of the operation: 5 Timing Results: Vector Size Rep #1 Rep #2 Rep #3 Rep #4 Rep #5 4096 0.000028 0.000006 0.000007 0.000007 0.000008 8192 0.000029 0.000013 0.000015 0.000013 0.000013 16384 0.000058 0.000028 0.000028 0.000030 0.000029 32768 0.000139 0.000057 0.000054 0.000057 0.000054 65536 0.000224 0.000109 0.000108 0.000109 0.000109 131072 0.000477 0.000218 0.000217 0.000218 0.000228 262144 0.000912 0.000439 0.000444 0.000457 0.000443 524288 0.001839 0.000894 0.000891 0.000913 0.000929 1048576 0.003983 0.002199 0.002173 0.002204 0.002216 2097152 0.008048 0.004357 0.004370 0.004674 0.004608 4194304 0.015459 0.008658 0.009040 0.008746 0.009521 Timing Results: Vector Size Rep #1 Rep #2 Rep #3 Rep #4 Rep #5 4096 0.000008 0.000007 0.000007 0.000008 0.000008 8192 0.000015 0.000015 0.000014 0.000014 0.000016 16384 0.000029 0.000028 0.000029 0.000029 0.000031 32768 0.000057 0.000056 0.000056 0.000056 0.000061 65536 0.000127 0.000112 0.000117 0.000113 0.000119 131072 0.000235 0.000224 0.000224 0.000225 0.000236 262144 0.000457 0.000450 0.000450 0.000471 0.000475 524288 0.001078 0.000982 0.000969 0.000941 0.001326 1048576 0.002846 0.002239 0.002362 0.002274 0.002759 2097152 0.004534 0.004464 0.004517 0.004456 0.005740 4194304 0.008974 0.009273 0.009132 0.010396 0.012322 Timing Results: Vector Size Rep #1 Rep #2 Rep #3 Rep #4 Rep #5 4096 0.000046 0.000045 0.000043 0.000044 0.000044 8192 0.000090 0.000090 0.000087 0.000087 0.000086 16384 0.000181 0.000182 0.000174 0.000173 0.000173 32768 0.000362 0.000347 0.000347 0.000347 0.000345 65536 0.000724 0.000699 0.000709 0.000692 0.000705 131072 0.001412 0.001384 0.001405 0.001393 0.001444 262144 0.002897 0.002863 0.002841 0.002836 0.002849 524288 0.005754 0.005553 0.005571 0.005575 0.005605 1048576 0.011234 0.011199 0.011177 0.011503 0.011189 2097152 0.022926 0.022592 0.022255 0.022209 0.022199 4194304 0.045344 0.044759 0.044656 0.044835 0.044518 Timing Results: Vector Size Rep #1 Rep #2 Rep #3 Rep #4 Rep #5 4096 0.000067 0.000061 0.000063 0.000060 0.000061 8192 0.000124 0.000119 0.000125 0.000120 0.000119 16384 0.000238 0.000239 0.000249 0.000239 0.000239 32768 0.000479 0.000477 0.000478 0.000478 0.000478 65536 0.000971 0.000961 0.000962 0.000971 0.000955 131072 0.001911 0.001908 0.001910 0.001924 0.001922 262144 0.003882 0.003866 0.003853 0.003833 0.003922 524288 0.007737 0.007660 0.007701 0.007658 0.007712 1048576 0.015556 0.015443 0.015452 0.015559 0.015478 2097152 0.030975 0.030945 0.030909 0.031137 0.030952 4194304 0.061838 0.062517 0.062363 0.062122 0.062186 TEST03 Time the unvectorized loops: do i = 1, n y(i) = x(i) y(i) = PI * x(i) y(i) = sqrt ( x(i) ) y(i) = exp ( x(i) ) end do Data vectors will be of minimum size 4096 Data vectors will be of maximum size 4194304 Number of repetitions of the operation: 5 Timing Results: Vector Size Rep #1 Rep #2 Rep #3 Rep #4 Rep #5 4096 0.000030 0.000011 0.000012 0.000012 0.000012 8192 0.000036 0.000023 0.000022 0.000023 0.000022 16384 0.000072 0.000045 0.000045 0.000048 0.000045 32768 0.000153 0.000095 0.000090 0.000090 0.000090 65536 0.000283 0.000183 0.000180 0.000178 0.000179 131072 0.000554 0.000358 0.000358 0.000364 0.000357 262144 0.001186 0.000715 0.000722 0.000715 0.000750 524288 0.002409 0.001449 0.001450 0.001442 0.001450 1048576 0.004902 0.003040 0.003057 0.003059 0.003057 2097152 0.010124 0.006465 0.006131 0.006104 0.006168 4194304 0.019184 0.012250 0.012265 0.012234 0.012238 Timing Results: Vector Size Rep #1 Rep #2 Rep #3 Rep #4 Rep #5 4096 0.000015 0.000015 0.000014 0.000013 0.000015 8192 0.000028 0.000027 0.000026 0.000027 0.000026 16384 0.000053 0.000053 0.000054 0.000057 0.000054 32768 0.000107 0.000107 0.000108 0.000107 0.000107 65536 0.000214 0.000213 0.000214 0.000222 0.000213 131072 0.000427 0.000427 0.000428 0.000426 0.000429 262144 0.000854 0.000854 0.000855 0.000855 0.000855 524288 0.001725 0.001757 0.001719 0.001735 0.001720 1048576 0.003585 0.003586 0.003565 0.003581 0.003589 2097152 0.007207 0.007156 0.007592 0.007164 0.007207 4194304 0.014732 0.014389 0.014359 0.014351 0.014357 Timing Results: Vector Size Rep #1 Rep #2 Rep #3 Rep #4 Rep #5 4096 0.000043 0.000043 0.000043 0.000043 0.000046 8192 0.000086 0.000085 0.000086 0.000085 0.000090 16384 0.000171 0.000172 0.000172 0.000173 0.000179 32768 0.000359 0.000343 0.000344 0.000343 0.000360 65536 0.000686 0.000691 0.000687 0.000686 0.000717 131072 0.001372 0.001372 0.001389 0.001371 0.001434 262144 0.002746 0.002756 0.002744 0.002804 0.002871 524288 0.005513 0.005505 0.005510 0.005497 0.005775 1048576 0.011277 0.011103 0.011116 0.011158 0.011561 2097152 0.022277 0.022295 0.022945 0.023117 0.023121 4194304 0.044420 0.044424 0.046136 0.046245 0.045139 Timing Results: Vector Size Rep #1 Rep #2 Rep #3 Rep #4 Rep #5 4096 0.000062 0.000057 0.000059 0.000059 0.000057 8192 0.000119 0.000114 0.000120 0.000123 0.000116 16384 0.000238 0.000229 0.000239 0.000228 0.000229 32768 0.000478 0.000458 0.000479 0.000458 0.000479 65536 0.000953 0.000916 0.000934 0.000916 0.000957 131072 0.001893 0.001863 0.001828 0.001838 0.001916 262144 0.003736 0.003666 0.003807 0.003662 0.003703 524288 0.007675 0.007386 0.007514 0.007400 0.007535 1048576 0.014853 0.014799 0.015075 0.014956 0.014979 2097152 0.029890 0.029726 0.030410 0.030054 0.030167 4194304 0.059370 0.060348 0.059545 0.060729 0.060307 TEST04 Time the 2D nearest neighbor problem. Given X(2,N) and Y(2), find X(2,*) closest to Y(2). do i = 1, n if distance ( x(2,i), y ) < minimum so far x_min = x(2,i) end do Data vectors will be of minimum size 1024 Data vectors will be of maximum size 1048576 Number of repetitions of the operation: 5 Timing Results: Vector Size Rep #1 Rep #2 Rep #3 Rep #4 Rep #5 1024 0.000011 0.000008 0.000007 0.000009 0.000008 2048 0.000015 0.000015 0.000014 0.000015 0.000016 4096 0.000030 0.000030 0.000029 0.000029 0.000034 8192 0.000055 0.000060 0.000057 0.000058 0.000057 16384 0.000119 0.000111 0.000110 0.000110 0.000110 32768 0.000225 0.000219 0.000219 0.000221 0.000220 65536 0.000440 0.000440 0.000441 0.000439 0.000440 131072 0.000915 0.000878 0.000907 0.000879 0.000879 262144 0.001832 0.001788 0.001759 0.001811 0.001771 524288 0.003527 0.003647 0.003602 0.003555 0.003559 1048576 0.007185 0.007154 0.007235 0.007281 0.007345 TEST05 Time the matrix multiplication problem. Compute C = A * B where A is an L by M matrix, B is an M by N matrix, and so C is an L by N matrix. Minimum value of L = M = N = 4 Maximum value of L = M = N = 1024 Number of repetitions of the operation: 5 Use nested DO loops for matrix multiplication. Timing results using nested DO loops: Vector Size Rep #1 Rep #2 Rep #3 Rep #4 Rep #5 4 0.000001 0.000001 0.000001 0.000001 0.000001 16 0.000036 0.000038 0.000035 0.000034 0.000036 64 0.002349 0.002247 0.002258 0.002248 0.002247 256 0.204572 0.203716 0.204553 0.204554 0.204840 Use the MATMUL routine for matrix multiplication. Timing results using MATMUL: Vector Size Rep #1 Rep #2 Rep #3 Rep #4 Rep #5 4 0.000125 0.000002 0.000002 0.000002 0.000002 16 0.000014 0.000005 0.000004 0.000004 0.000004 64 0.000166 0.000165 0.000173 0.000174 0.000165 256 0.010205 0.010214 0.010598 0.010835 0.010220 1024 0.835857 0.831474 0.869647 0.824979 0.859082 TIMER_CPU_TIME Normal end of execution. January 14 2011 11:26:56.967 AM