Possible Solution
Content |
We only show here the benchmark result for -O3.
Benchmark for unmodified code
heim$ gcc -Wall -std=c11 -O3 -o bench_init bench_init.c heim$ ./bench_init # m n t (colm) t (rowm) 100 100 0.00 0.00 200 200 0.00 0.00 300 300 0.00 0.00 400 400 0.00 0.00 500 500 0.00 0.00 600 600 0.00 0.00 700 700 0.00 0.01 800 800 0.00 0.01 900 900 0.00 0.01 1000 1000 0.00 0.01 1100 1100 0.01 0.01 1200 1200 0.00 0.02 1300 1300 0.00 0.02 1400 1400 0.00 0.02 1500 1500 0.00 0.02 1600 1600 0.01 0.02 1700 1700 0.01 0.02 1800 1800 0.00 0.02 1900 1900 0.01 0.03 2000 2000 0.01 0.03 2100 2100 0.01 0.04 2200 2200 0.02 0.04 2300 2300 0.02 0.05 2400 2400 0.01 0.05 2500 2500 0.02 0.06 2600 2600 0.02 0.07 2700 2700 0.02 0.07 2800 2800 0.01 0.09 2900 2900 0.02 0.09 3000 3000 0.02 0.10 3100 3100 0.03 0.10 3200 3200 0.02 0.11 3300 3300 0.03 0.12 3400 3400 0.03 0.13 3500 3500 0.03 0.14 3600 3600 0.03 0.14 3700 3700 0.04 0.16 3800 3800 0.04 0.17 3900 3900 0.04 0.18 4000 4000 0.03 0.18 4100 4100 0.04 0.20 4200 4200 0.04 0.20 4300 4300 0.04 0.21 4400 4400 0.04 0.23 4500 4500 0.05 0.24 4600 4600 0.05 0.25 4700 4700 0.05 0.26 4800 4800 0.05 0.28 4900 4900 0.06 0.29 5000 5000 0.05 0.29 5100 5100 0.05 0.31 5200 5200 0.06 0.32 5300 5300 0.07 0.34 5400 5400 0.06 0.35 5500 5500 0.06 0.36 5600 5600 0.07 0.38 5700 5700 0.08 0.39 5800 5800 0.07 0.41 5900 5900 0.07 0.41 6000 6000 0.08 0.43 6100 6100 0.08 0.45 6200 6200 0.09 0.47 6300 6300 0.09 0.48 6400 6400 0.09 0.53 6500 6500 0.10 0.51 6600 6600 0.09 0.54 6700 6700 0.10 0.55 6800 6800 0.11 0.57 6900 6900 0.11 0.59 7000 7000 0.11 0.61 heim$
Benchmark for modified code
heim$ gcc -Wall -std=c11 -O3 -o bench_init_sol bench_init_sol.c heim$ ./bench_init_sol # m n t (colm) t (rowm) 100 100 0.00 0.00 200 200 0.00 0.00 300 300 0.00 0.00 400 400 0.00 0.00 500 500 0.00 0.00 600 600 0.00 0.00 700 700 0.00 0.01 800 800 0.00 0.00 900 900 0.00 0.01 1000 1000 0.00 0.00 1100 1100 0.00 0.01 1200 1200 0.00 0.01 1300 1300 0.00 0.00 1400 1400 0.01 0.01 1500 1500 0.00 0.00 1600 1600 0.01 0.00 1700 1700 0.01 0.00 1800 1800 0.01 0.00 1900 1900 0.02 0.00 2000 2000 0.01 0.01 2100 2100 0.01 0.01 2200 2200 0.01 0.01 2300 2300 0.01 0.02 2400 2400 0.01 0.01 2500 2500 0.01 0.02 2600 2600 0.02 0.02 2700 2700 0.01 0.01 2800 2800 0.01 0.02 2900 2900 0.02 0.02 3000 3000 0.02 0.03 3100 3100 0.02 0.03 3200 3200 0.02 0.02 3300 3300 0.02 0.03 3400 3400 0.03 0.03 3500 3500 0.03 0.04 3600 3600 0.03 0.03 3700 3700 0.03 0.04 3800 3800 0.03 0.03 3900 3900 0.03 0.04 4000 4000 0.03 0.04 4100 4100 0.04 0.04 4200 4200 0.04 0.05 4300 4300 0.04 0.04 4400 4400 0.04 0.05 4500 4500 0.04 0.05 4600 4600 0.04 0.05 4700 4700 0.05 0.06 4800 4800 0.04 0.06 4900 4900 0.05 0.06 5000 5000 0.06 0.07 5100 5100 0.06 0.06 5200 5200 0.06 0.06 5300 5300 0.07 0.07 5400 5400 0.06 0.07 5500 5500 0.07 0.07 5600 5600 0.07 0.08 5700 5700 0.07 0.08 5800 5800 0.08 0.08 5900 5900 0.08 0.09 6000 6000 0.08 0.08 6100 6100 0.09 0.09 6200 6200 0.09 0.10 6300 6300 0.09 0.10 6400 6400 0.09 0.10 6500 6500 0.10 0.10 6600 6600 0.09 0.11 6700 6700 0.10 0.10 6800 6800 0.10 0.12 6900 6900 0.10 0.12 7000 7000 0.11 0.12 heim$