$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Benedikt Weber (weber_at_[hidden])
Date: 2002-06-25 06:23:28
I compiled uBLAS with Metrowerks CodeWarrior 8 on Windows 2000. Once I got
the include paths right (avoiding exception.h and functional.h from MSL
being included instead from uBLAS), all tests compiled without errors. (Well
the new ISO template parser found a lot missing typename's in the testing
code and some undefined matrices called "m3" [should be "m"] which are not
actually instantiated.)
Unfortuntely performance is unexpectedly low. Just taking the output from
bench1 (scale 10, Pentium 3, 933 Mz), 100x100 double matrix multiply (last
lines of output):
CW8:
prod (matrix, matrix)
C array
elapsed: 0.14 s, 406.674 Mflops
c_matrix safe
elapsed: 3.435 s, 16.5748 Mflops
c_matrix fast
elapsed: 3.405 s, 16.7208 Mflops
matrix<unbounded_array> safe
elapsed: 6.509 s, 8.74702 Mflops
matrix<unbounded_array> fast
elapsed: 6.58 s, 8.65264 Mflops
matrix<std::vector> safe
elapsed: 12.197 s, 4.6679 Mflops
matrix<std::vector> fast
elapsed: 12.168 s, 4.67902 Mflops
compare this with MSVC6:
bench_3
prod (matrix, matrix)
C array
elapsed: 0.311 s, 183.069 Mflops
c_matrix safe
elapsed: 0.19 s, 299.655 Mflops
c_matrix fast
elapsed: 0.17 s, 334.908 Mflops
matrix<unbounded_array> safe
elapsed: 0.171 s, 332.949 Mflops
matrix<unbounded_array> fast
elapsed: 0.17 s, 334.908 Mflops
matrix<std::vector> safe
elapsed: 0.21 s, 271.116 Mflops
matrix<std::vector> fast
elapsed: 0.171 s, 332.949 Mflops
I tried several settings (inline depth of 8, no auto inline, target
processor Pentium 3) with all basically the same performance. I have no idea
where to look next. I don't have any experience with this version of the
Metrowerks compiler since it just came out, and I did not do any timing with
older versions either. I just wonder what the performance is with other
compilers. It probably depends much on the ability to inline code.
Benedikt