sawyl: (Default)
[personal profile] sawyl
Ever wonder what happens if you get your compiler options wrong? Here's an example of a particularly pathological case on an Itanium (actually a 1GHz McKinley system):

itanic> efc check.f90 ; time ./a.out
check.f90(23) : (col. 0) remark: LOOP WAS SOFTWARE-PIPELINED.
check.f90(23) : (col. 0) remark: LOOP WAS SOFTWARE-PIPELINED.

real 0m2.042s
user 0m2.032s
sys 0m0.009s
itanic> efc -check bounds check.f90 ; time ./a.out

real 0m19.830s
user 0m19.049s
sys 0m0.010s
itanic> efc -O0 check.f90 ; time ./a.out

real 1m3.465s
user 1m3.364s
sys 0m0.008s
itanic>

For comparison, here are the results of the same set of tests on a modern 3.5GHz Xeon using a very similar compiler and set of compiler options:

xeon> ifort check.f90 ; time ./a.out

real 0m1.476s
user 0m1.474s
sys 0m0.001s
xeon> ifort -check bounds check.f90 ; time ./a.out

real 0m1.681s
user 0m1.676s
sys 0m0.003s
xeon> ifort -O0 check.f90 ; time ./a.out

real 0m5.016s
user 0m4.962s
sys 0m0.004s
xeon>

Just goes to show how heavily the Itanium, with its deep pipelines and oh-so-clever EPIC instruction set, depends on the compiler to do the Right Thing and just how painful life can be if you accidentally leave bounds checking enabled in a production binary.

Date: 2007-07-19 09:25 pm (UTC)
From: [identity profile] doctor-squale.livejournal.com

Welcome to my world.

( But Opterons need good compilers too ).

Profile

sawyl: (Default)
sawyl

August 2018

S M T W T F S
   123 4
5 6 7 8910 11
12131415161718
192021222324 25
262728293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 6th, 2026 04:32 am
Powered by Dreamwidth Studios